我有一个扩展程序,在 Chrome 的最新更新 (45) 之前一直可以正常工作。
问题是过去为每个选项卡单独加载的内容脚本现在似乎在打开的选项卡和它的打开选项卡之间共享范围(当使用 window.open 时),只要新选项卡在同一个域作为开场白。
有趣的是,直到今天,当我的 Chrome 更新到最新的稳定版本 (45) 时,情况才如此,但我无法在发行说明中找到任何关于此的信息(很可能是我错过了)。
我的问题是这是否确实是新 Chrome 的一个变化?如果是,我该如何防止这种情况发生或解决它?
最佳答案
根据内容脚本的作用,可能有不同的方法来解决问题。
到目前为止,我注意到在 Chrome 45 中,发送到 tabId
的 chrome.tabs.sendMessage(tabId, {message:"text"})
也被此选项卡的打开器选项卡的内容脚本和解决方法是(暗示您要将消息发送到主框架的内容脚本):
try {chrome.tabs.sendMessage(tabId, message, {frameId: 0})} // throws on Chrome prior to 41
catch(e) {chrome.tabs.sendMessage(tabId, message)}
关于javascript - 使用 window.open(自 Chrome 45 起)打开新标签时,是否共享 Chrome 扩展内容脚本范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443547/