如何识别网页是在IFRAME或FRAME中加载的

时间:2013-12-11 23:33:01

标签: javascript iframe frame

我正在开发Chrome扩展程序的“内容脚本”。如果页面加载在< FRAME>中,它必须激活一些javascript函数。但在< IFRAME>中没有。

我知道我可以通过

检查window.frameElement

var inIFrame = (window.frameElement.tagName=='IFRAME')

但如果子框架与父框架不在同一个域中,则会失败。它会抛出跨域安全警告。子框架如何知道它在IFRAME或FRAME中而不违反安全策略?

1 个答案:

答案 0 :(得分:1)

不,这是不可能确定的。子文档不能跨越其安全边界,如果域不同并且没有其他CORS权限,则其“可见世界”仅限于其自己的文档的范围,即其自己的窗口。没有办法超越它进入父文档的范围,并确定包含元素的类型。这样做会暴露整个对象及其属性,包括所有潜在的知识漏洞。