我的页面中嵌入了来自不同域的iframe。是否可以通过某种方式从父页面访问其DOM?现在它说:
未捕获DOMException:无法阅读' contentDocument'属性来自' HTMLIFrameElement':阻止了一个有起源的框架" http://localhost:63342"从访问跨源框架。
我希望添加指令
<?php header('Access-Control-Allow-Origin: *'); ?>
到iframe页面会有所帮助,但事实并非如此。 这两个域现在都位于我的localhost上,但运行的是不同的服务器。 那么有一些有效的解决方案吗? 请注意,我只需要访问一些iframe的元素,它不是关于postMessages,websockets等。
答案 0 :(得分:1)
请注意,我只需要访问一些iframe的元素
直接访问是不可能的
不是关于postMessages
postMessage
可以达到同样的最终目标。
您只需将访问DOM的代码移动到iframe内的页面,然后使用父窗口中的postMessage
来请求该页面运行它。然后,该页面可以将父窗口所需的任何数据序列化为字符串,并使用postMessage
将其发回。