Большинство виджета javascript, которые могут быть встроены в веб-сайт, используют следующую структуру. Сначала вы вставляете код, отрезанный так:
<script type="text/javascript">
window.$zopim||(function(d,s){var z=$zopim=function(c){
z._.push(c)},
$=z.s=d.createElement(s),
e=d.getElementsByTagName(s)[0];
z.set=function(o){
z.set._.push(o)
};
z._=[];
z.set._=[];
$.async=!0;
$.setAttribute('charset','utf-8');
$.src='//v2.zopim.com/?2342323423434234234';
z.t=+new Date;
$.type='text/javascript';
e.parentNode.insertBefore($,e)})(document,'script');
</script>
Затем при загрузке вашей страницы этот script создает такую структуру html:
<div class="widget-class">
<iframe src="about:blank">
// the content of the widget
</iframe>
</div
Я вижу эту же структуру во многих службах чата, таких как:
https://en.zopim.com/
http://banckle.com/
https://www.livechatinc.com/
У всех есть общее, что их iframe не имеет src
, т.е. присоединенного URL.
Обновление: вот script Я использую для загрузки моего кода виджетов на сторонний веб-сайт:
<script type="text/javascript">
(function(d){
var f = d.getElementsByTagName('SCRIPT')[0], p = d.createElement('SCRIPT');
window.WidgetId = "1234";
p.type = 'text/javascript';
p.setAttribute('charset','utf-8');
p.async = true;
p.src = "//www.example.com/assets/clientwidget/chatwidget.nocache.js";
f.parentNode.insertBefore(p, f);
}(document));
</script>
Я хочу, чтобы CSS сайта, на котором интегрирован виджет GWT, не должен влиять на CSS виджета GWT. Я буду препятствовать тому, чтобы CSS-страница хоста влияла на CSS моего виджета GWT.
Примечание. Я хочу получить доступ к веб-узлу хоста из моего виджета GWT.
Домен главной страницы - www.example.com, а домен iframe - www.widget.com. Я также хочу установить файлы cookie домена хоста из iframe.
Какова процедура построения виджета, работающего на такой структуре? Как настроено содержимое iframe? Есть ли образец для этого? Как я могу это сделать с помощью GWT