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

Cross domain iframe access using postmessage - access denied

本文关键字:访问 拒绝 iframe postmessage 使用      更新时间:2023-09-26

我正在使用润滑键尝试自动填充数据。在我想要从中提取数据的页面上,我在文档上附加了一个按钮。这个按钮创建了一个包含我想将数据推送到的网站的框架。

从我在SO和其他地方看到的情况来看,我认为我应该能够通过使用postmessage向iframe发送信息。要做到这一点,我需要获取该帧的contentWindow。

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

在创建iframe时,我还将窗口引用存储在一个全局变量中,没有遇到任何问题,但如果我试图从另一个函数访问该变量,我会再次遇到同样的"拒绝访问"错误。

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

非常感谢您的帮助。感谢:)

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

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