【问题标题】:Mousedown event listener does not fire on cross-origin iframeMousedown 事件侦听器不会在跨域 iframe 上触发
【发布时间】:2020-05-24 14:35:47
【问题描述】:

我在 Chrome 浏览器扩展的内容脚本中使用 document.addEventListener("mousedown", function (event) {...}, true); 来监听 mousedown 事件。单击www.icloud.com 上的用户名字段时,它在我测试它的所有其他网站上工作时不会触发。我发现登录表单是从idmsa.apple.com加载的iframe。

当单击跨域 iframe 中的字段时是否可以触发事件侦听器,或者由于同源策略,这不可能?

【问题讨论】:

  • 在该 iframe 中运行一个额外的内容脚本,它会看到该事件。用"all_frames": true 声明它,并通过后台脚本使用消息来与主要内容脚本协调。

标签: javascript iframe google-chrome-extension cross-domain content-script


【解决方案1】:

我发现了问题。电话chrome.tabs.executeScript({file:"content.js", allFrames:true});if (details.frameId === 0) 包围。删除此条件后,我注意到由于日志中的错误消息,manifest.json 中缺少权限tabs。似乎权限activeTab 足以将内容脚本注入顶部帧,但对于子帧tabs 是必要的。

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 2015-12-18
    • 2013-05-19
    • 1970-01-01
    • 2016-05-30
    • 2022-12-06
    相关资源
    最近更新 更多