js跨域转iframe

js cross-domain to iframe

我的页面中嵌入了来自不同域的 iframe。是否可以通过某种方式从父页面访问其 DOM ?现在它说:


未捕获 DOM异常:无法从 'HTMLIFrameElement' 读取 'contentDocument' 属性:阻止了来源为“http://localhost:63342”的帧访问交叉-原始框架。


我希望添加指令

<?php header('Access-Control-Allow-Origin: *');  ?>

到 iframe 页面会有帮助,但没有用。 这两个域现在都位于我的本地主机上,但在不同的服务器 运行 下。 那么有一些可行的解决方案吗? 请注意,我只需要访问一些 iframe 的元素,而不是关于 postMessages、websockets 等。

Notice that I need just an access to some iframe's elements

无法直接访问

it's not about postMessages

postMessage可以达到同样的最终目的。

您只需要将访问 DOM 的代码移动到 iframe 内的页面,然后使用父 window 中的 postMessage 将该页面请求到 运行 它。然后该页面可以将父 window 需要的任何数据序列化为字符串,并使用 postMessage 将其发回。