Javascript 使用window.open打开新选项卡时,是否共享Chrome扩展内容脚本范围(从Chrome 45开始)?

Javascript 使用window.open打开新选项卡时,是否共享Chrome扩展内容脚本范围(从Chrome 45开始)?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我有一个扩展,它在Chrome(45)的最新更新之前一直工作良好 问题是,过去为每个选项卡分别加载的内容脚本现在似乎在打开的选项卡和其打开器选项卡(使用window.open时)之间共享作用域,只要新选项卡与打开器位于同一域中 有趣的是,直到今天我的Chrome更新到最新的稳定版本(45),我才发现这一点(很可能我错过了) 我的问题是,这是否真的是新Chrome的改变?如果是,我如何防止这种情况发生或解决它?除了它的一些功能外,您还没有说明任何关于扩展的信息。但是,如果您只是需要扩展才能工作,并

我有一个扩展,它在Chrome(45)的最新更新之前一直工作良好

问题是,过去为每个选项卡分别加载的内容脚本现在似乎在打开的选项卡和其打开器选项卡(使用window.open时)之间共享作用域,只要新选项卡与打开器位于同一域中

有趣的是,直到今天我的Chrome更新到最新的稳定版本(45),我才发现这一点(很可能我错过了)


我的问题是,这是否真的是新Chrome的改变?如果是,我如何防止这种情况发生或解决它?

除了它的一些功能外,您还没有说明任何关于扩展的信息。但是,如果您只是需要扩展才能工作,并且需要并寻找一个稳定的环境,我建议您坚持使用您最熟悉的web浏览器版本,并且您有丰富的使用经验。不需要一直跟踪更新您正在经历的更改可能只是一个不推荐使用的代码,需要一个补丁。


此外,我还没有时间检查chrome 45的所有变化,但是,我看到的主要变化是tab loader standby(对firefox来说不是什么新鲜事)。

除了它的一些功能外,您没有说明任何关于扩展的信息。但是,如果您只是需要扩展才能工作,并且需要并寻找一个稳定的环境,我建议您坚持使用您最熟悉的web浏览器版本,并且您有丰富的使用经验。不需要一直跟踪更新您正在经历的更改可能只是一个不推荐使用的代码,需要一个补丁。


此外,我还没有时间检查chrome 45中的所有更改,但是,我看到的主要更改是tab loader standby(对firefox来说不是什么新鲜事)。

根据您的内容脚本所做的,可能有不同的方法来解决此问题

到目前为止,我注意到在Chrome 45
Chrome.tabs.sendMessage(tabId,{message:“text”})
发送到
tabId
中,该选项卡的opener选项卡的内容脚本也会接收到该消息,解决方法是(意味着您希望将消息发送到主框架的内容脚本):


我认为这是一个bug,显然它是在of中引入的。

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

到目前为止,我注意到在Chrome 45
Chrome.tabs.sendMessage(tabId,{message:“text”})
发送到
tabId
中,该选项卡的opener选项卡的内容脚本也会接收到该消息,解决方法是(意味着您希望将消息发送到主框架的内容脚本):


我认为这是一个bug,显然是在中引入的。

谢谢您的回复。由于我的扩展名被其他用户(客户)使用,因此不更新浏览器是不可选项。我无法控制他们的浏览器版本。我没有意识到这一点,抱歉。我的错,我没有想到要提及它。谢谢你花时间回复。谢谢你的回复。由于我的扩展名被其他用户(客户)使用,因此不更新浏览器是不可选项。我无法控制他们的浏览器版本。我没有意识到这一点,抱歉。我的错,我没有想到要提及它。无论如何,谢谢你花时间回复。可能就是这个。我确实看到了发送给开场白的信息,这可能就是解释。我将尝试您的代码,稍后在这里更新。谢谢看起来很有效。谢谢你快速而有用的回答!可能就是这样。我确实看到了发送给开场白的信息,这可能就是解释。我将尝试您的代码,稍后在这里更新。谢谢看起来很有效。谢谢你快速而有用的回答!
try {chrome.tabs.sendMessage(tabId, message, {frameId: 0})} // throws on Chrome prior to 41
catch(e) {chrome.tabs.sendMessage(tabId, message)}