如果 iframe 元素本身可见或不可见,iframe "see" 中的页面是否可以跨域?

Can a page inside an iframe "see" cross domain if the iframe element itself is visible or not?

如果我从不同的域在 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.

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

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

document.domain = 'example.com';

这将允许跨框架通信。

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

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