【发布时间】:2016-04-08 13:34:40
【问题描述】:
大多数可以嵌入网站的 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>
然后,当加载你的页面时,这个脚本会创建一个像这样的 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 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>
我希望集成 GWT 小部件的网站的 CSS 不应影响 GWT 小部件的 CSS。我将防止主机页面的 CSS 影响我的 GWT 小部件的 CSS。
注意:我也想从我的 GWT 小部件访问托管网站。
主机页面的域是 www.example.com,而 iframe 的域是 www.widget.com。我还想从 iframe 设置主机域的 cookie。
构建在这种结构上运行的小部件的过程是什么? iframe 的内容是如何设置的?有这样的模式吗?我怎么能用 GWT 做到这一点
【问题讨论】:
-
我对 GWT 不太擅长,这对你有帮助吗? Embedding HTML Document in an IFRAME With GWT
-
不,这对我没有帮助。
标签: javascript html css iframe gwt