js跨域到iframe

时间:2015-09-06 08:38:11

标签: javascript iframe same-origin-policy

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

未捕获DOMException:无法阅读' contentDocument'属性来自' HTMLIFrameElement':阻止了一个有起源的框架" http://localhost:63342"从访问跨源框架。

我希望添加指令

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

到iframe页面会有所帮助,但事实并非如此。 这两个域现在都位于我的localhost上,但运行的是不同的服务器。 那么有一些有效的解决方案吗? 请注意,我只需要访问一些iframe的元素,它不是关于postMessages,websockets等。

1 个答案:

答案 0 :(得分:1)

  

请注意,我只需要访问一些iframe的元素

直接访问是不可能的

  

不是关于postMessages

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

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