Javascript 从iframe获取有关文档的信息?

Javascript 从iframe获取有关文档的信息?,javascript,Javascript,我注意到一些站点在外部域中构建时重定向用户 如何知道何时通过iframe加载我的站点 我怎么知道包含它的站点的域呢?看看javascript中的framebreaker,这正是您想要的 以下是一些未经测试但应能正常工作的示例: if (self != top){ alert('FRAMED! URL = ' + top.location.href); top.location = self.location; } 如果您可以让iframe通过框架内的脚本来告诉您自己,这是理想的。例如,它可以

我注意到一些站点在外部域中构建时重定向用户

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


我怎么知道包含它的站点的域呢?

看看javascript中的framebreaker,这正是您想要的


以下是一些未经测试但应能正常工作的示例:

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

如果您可以让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”事件函数。在这种情况下,在设置回调之前无法加载它; 将其包含在标记中的老派方法:

<img onload="callback(this)" ... />
HTML中的内联“onsomething”处理程序几乎总是错误的,需要避免,但在这种情况下,它有时是最不坏的选择