在交叉脚本发送消息后选择触发更改事件



我有浏览器扩展,打开一个iFrame,并允许用户做的东西,然后更新父页上的值。它跨越了不同的域,并使用了postMessage和receiveMessage,这样我就可以跨域传递消息。这工作得很好,我可以使用这些消息在父页面上的控件中设置某些值。我可以设置选择框的值,但我还需要通过jQuery触发选择框的更改事件

$("#selectid").change();

如果从页面上的用户事件调用,则可以工作,但是当从receiveMessage调用时,它只是不触发更改事件。我相信这可能是故意的,以防止交叉脚本攻击,但由于我可以设置该值,当然我也应该能够调用更改事件。有谁能确认这个行为和/或知道解决方法吗?

p。我使用的代码是一个大型应用程序的一部分,我没有一个可以轻易展示的演示,但上面的解释相当详细。

如果使用addEventListener() javascript的方法绑定处理程序,则需要调度onchange事件:

    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    $(selector)[0].dispatchEvent(evt);

有一些可用于支持IE8的多边形,例如:https://gist.github.com/jonathantneal/3748027

相关内容

  • 没有找到相关文章

最新更新