从iframe获取文档信息

Get info about document from iframe?

本文关键字:信息 文档 获取 iframe      更新时间:2023-09-26

我注意到一些网站在外部域框架下会重定向用户。

我怎么知道我的网站是通过iframe加载的?

我怎么知道包含它的网站的域名?

如果您可以让iframe从框架内的脚本中告诉您自己,这是理想的。例如,它可以直接调用父函数来告诉它准备好了。跨框架代码执行总是需要小心,因为事情可能以您意想不到的顺序发生。另一种方法是在自己的范围内设置' var isready= true; ',并让父脚本嗅探' contentWindow '。(并添加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 '处理程序几乎总是错误的,应该避免,但在这种情况下,有时这是最不坏的选择。

看看javascript中的framebreaker,这正是你要找的。

这里有一些例子http://www.thesitewizard.com/archive/framebreak.shtml

未测试,但应该可以工作:

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