从iframe获取文档信息
Get info about document from iframe?
我注意到一些网站在外部域框架下会重定向用户。
我怎么知道我的网站是通过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;
}
相关文章:
- 使用promise和mongoose对文档进行排序
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- Ajax请求文档就绪会导致jquery加载缓慢
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 谷歌文档表面引擎
- 来自文档或下一个静态父级的事件委派
- 如何将childNodes用于XML文档
- 文档就绪提供了错误的选择器高度
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- 无法使用谷歌地图在“文档”上执行“写入”(信息窗口问题)
- 包含 Mongodb 中位置信息的文档
- 获取加载 ajax 的文档信息
- 在Google Apps Script中获取javascript“文档HTML DOM”信息
- Mongodb获取每个文档的用户信息
- 文档永远不会准备好从数据库获取信息
- 错误信息:文档.在JSFiddle中不允许写
- 从iframe获取文档信息
- 传递信息到服务器端的功能在谷歌文档添加
- 根据adobeacrobatdc的初始文档(第1页)信息在javascript中自动加载特定文档
- 如何获取有关文档的最重要信息以及我在 MarkLogic / 查询控制台中搜索的单词周围的一些行