【问题标题】:Cross domain iframe access using postmessage - access denied使用 postmessage 跨域 iframe 访问 - 访问被拒绝
【发布时间】:2016-03-02 20:51:16
【问题描述】:

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

从我在 SO 和其他地方看到的情况来看,我认为我应该能够通过使用 postmessage 将信息发送到 iframe。为此,我需要获取该框架的 contentWindow。

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

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

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

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

【问题讨论】:

    标签: javascript html iframe postmessage


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。抱歉,我花了 4 个多月的时间才真正感谢你:)
    猜你喜欢
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2012-05-15
    相关资源
    最近更新 更多