如果iframe元素本身可见,iframe内的页面可以“看到”跨域吗?

时间:2015-01-07 22:17:11

标签: javascript jquery security iframe cors

如果我从不同的域加载iframe中的页面,那么所包含的页面是否仍然可以查看iframe元素或其父元素是否可见(例如使用jquery的is(':hidden'))?

我可以控制两个域 - 我可以设置CORS,属性等等。我尝试的一切仍然给了我类似的东西:

Uncaught SecurityError: Blocked a frame with origin "http://s-college.mydomain.com" from accessing a frame with origin "http://qaf.ng.mydomain.com". Protocols, domains, and ports must match.

如果有帮助,基本域实际上是相同的,只是子域不同。

1 个答案:

答案 0 :(得分:1)

如果他们都在同一个高级域名(例如foo.example.combar.example.com),您可以在JavaScript中设置document.domain

document.domain = 'example.com';

这将允许跨帧通信。

CORS仅适用于(主要是AJAX)请求,因此在此处不适用。

以防万一其他人发现这个问题在同一个更高级别的域名中没有:如果他们在不同的域上,您需要使用window.postMessage才能进行跨框架通信。< / p>