2011-11-16 57 views
0

我注意到有些网站在用户在外部域中构建时会重定向用户。从iframe获取文档信息?

如何知道我的网站何时通过iframe加载?

我怎样才能知道包含它的网站的域名?

回答

0

这是理想的,如果你能得到的iframe来告诉你,自己从框架中的脚本。例如,它可以直接调用父函数来告诉它已准备就绪。对于跨帧代码执行,始终需要小心,因为事情可能以您不期望的顺序发生。另一种方法是在自己的作用域中设置'var isready = true;',并让父脚本嗅探'contentWindow.isready'(如果不是,则添加onload处理程序)。

如果由于某种原因,它是不实际的iframe文档协同工作,你已经得到了传统的负载种族问题,即,即使元素是紧挨着对方:

<img id="x" ... /> 
<script type="text/javascript"> 
    document.getElementById('x').onload= function() { 
     ... 
    }; 
</script> 

不能保证该项目在脚本执行时不会被加载。

出负载比赛的方式是:

在IE浏览器,你可以使用“readyState的”属性,看看是否有什么地方已经加载; 如果仅在启用JavaScript的情况下才能使用该项目,则可以在设置源并追加到页面之前设置“onload”事件函数来动态创建它。在这种情况下,它不能在回调设置之前加载;包括它的标记 老派的方式:“onsomething”处理程序HTML

<img onload="callback(this)" ... /> 

内嵌几乎都是错误的东西,并要避免,但在这种情况下,有时它是最不坏的选择。

0

未经测试,但应该工作:

if (self != top){ 
alert('FRAMED! URL = ' + top.location.href); 
top.location = self.location; 
}