是Chrome扩展内容脚本范围共享时,打开一个新的选项卡与窗口.打开(自Chrome 45)



我有一个扩展,以前工作很好,直到最新更新到Chrome(45)。

问题是,内容脚本,用来分别加载每个选项卡,现在似乎在一个打开的选项卡和它的打开器选项卡之间共享范围(当使用window.open),只要新的选项卡是在相同的域作为打开器。

有趣的是,直到今天,当我的Chrome更新到最新的稳定版本(45)时,情况才有所不同,但我无法在发行说明中找到任何关于这一点的内容(很可能是我错过了)。

我的问题是这是否真的是一个变化与新的Chrome?如果是这样,我该如何防止这种情况的发生或解决它?

根据您的内容脚本的功能,可能有不同的方法来解决这个问题。

到目前为止,我已经注意到,在Chrome 45 chrome.tabs.sendMessage(tabId, {message:"text"})发送到tabId也收到这个选项卡的打开选项卡的内容脚本和解决方案是(暗示你要发送消息到主框架的内容脚本):

try {chrome.tabs.sendMessage(tabId, message, {frameId: 0})} // throws on Chrome prior to 41
catch(e) {chrome.tabs.sendMessage(tabId, message)}

我认为这是一个错误,显然它是在这个错误的修复中引入的。

除了它的一些功能外,您没有说明关于扩展的任何信息。然而,如果你只是需要扩展工作,需要和寻找一个稳定的环境,我建议你坚持你最知道的web浏览器的版本,你是有经验的。没有必要一直关注更新。

您正在经历的更改可能只是一个不赞成的代码,需要一个补丁。

另外,我没有时间检查chrome 45的所有变化,然而,我看到的主要变化是标签加载器待机(对firefox来说不是什么新鲜事)。

最新更新