Javascript 从iframe获取有关文档的信息?
我注意到一些站点在外部域中构建时重定向用户 如何知道何时通过iframe加载我的站点Javascript 从iframe获取有关文档的信息?,javascript,Javascript,我注意到一些站点在外部域中构建时重定向用户 如何知道何时通过iframe加载我的站点 我怎么知道包含它的站点的域呢?看看javascript中的framebreaker,这正是您想要的 以下是一些未经测试但应能正常工作的示例: if (self != top){ alert('FRAMED! URL = ' + top.location.href); top.location = self.location; } 如果您可以让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”处理程序几乎总是错误的,需要避免,但在这种情况下,它有时是最不坏的选择