使用postmessage跨域iframe访问 - 访问被拒绝

时间:2015-11-29 00:11:57

标签: javascript html iframe postmessage

我正在使用greasemonkey尝试自动填充数据。在我希望从中提取数据的页面上,我向文档添加了一个按钮。此按钮创建一个框架,其中包含我要将数据推送到的网站。

从我在SO和其他地方看到的内容,我认为我应该能够通过postmessage将信息发送到iframe。为此,我需要获取该帧的contentWindow。

现在,当我创建框架时,我可以访问frame.contentWindow。如果我尝试使用document.getElementById(“frameid”)从另一个函数中获取contentWindow。则contentWindow我得到“访问被拒绝”。

我还在创建iframe时将窗口引用存储在全局变量中而没有问题,但是如果我尝试从另一个函数访问该变量,我会得到相同的“访问被拒绝”错误。

我对这一切都很陌生,所以也许我只是在做一些愚蠢的事情,但任何人都可以澄清这种行为是否正常?如果这是正常的,那么如果我在需要时无法获取contentWindow,如何使用postmessage将信息发送到iframe? :■

任何帮助非常感谢。谢谢:))

1 个答案:

答案 0 :(得分:0)

上周,我遇到了完全相同的问题,我修复了相关的Mozilla开发者文档。 https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

这是一个例子: https://gist.github.com/nesimtunc/cbfee61071ab46459b5c