Javascript 检测chrome.tabs事件源

Javascript 检测chrome.tabs事件源,javascript,google-chrome,google-chrome-extension,tabs,Javascript,Google Chrome,Google Chrome Extension,Tabs,我正在开发处理标签的chrome扩展。扩展允许打开和关闭选项卡。 我还需要知道某个选项卡在我的扩展之外何时打开和关闭,因此我会收听tabs.onClose和tabs.onCreate事件。我的问题是如何轻松确定打开的选项卡操作是发生在我的扩展内还是扩展外?基本上您无法轻松做到这一点,因为选项卡事件没有类似于事件资源的功能来跟踪谁对选项卡进行了更改 我的想法是: 在后台脚本中定义一个数组,该数组保留扩展更改的所有选项卡id 收听onUpdated、onCreated,以及您想要收听的所有其他选项

我正在开发处理标签的chrome扩展。扩展允许打开和关闭选项卡。

我还需要知道某个选项卡在我的扩展之外何时打开和关闭,因此我会收听tabs.onClose和tabs.onCreate事件。我的问题是如何轻松确定打开的选项卡操作是发生在我的扩展内还是扩展外?

基本上您无法轻松做到这一点,因为选项卡事件没有类似于
事件资源的功能来跟踪谁对选项卡进行了更改

我的想法是:

  • 在后台脚本中定义一个数组,该数组保留扩展更改的所有选项卡id

  • 收听
    onUpdated
    onCreated
    ,以及您想要收听的所有其他选项卡事件

  • 检查该数组中的选项卡id是否正确,如果不正确,则扩展插件不会更改它


基本上,您无法轻松完成此操作,因为tab event没有类似于
事件资源的功能来跟踪谁对选项卡进行了更改

我的想法是:

  • 在后台脚本中定义一个数组,该数组保留扩展更改的所有选项卡id

  • 收听
    onUpdated
    onCreated
    ,以及您想要收听的所有其他选项卡事件

  • 检查该数组中的选项卡id是否正确,如果不正确,则扩展插件不会更改它


如果您在扩展中打开了某些内容,您应该能够在代码中明确跟踪此操作。如果你想找到一种追溯性地确定这一事实的方法,那么就没有真正有用的方法。有时您可以通过OpenerTab进行检查,但它不可靠,如果选项卡已关闭或您从后台/弹出脚本打开了选项卡,则可能会丢失它。假设我这样做了
chrome.tabs.moveTab(..
,我得到了一个move event。我如何才能确定这个事件与我的操作有关?我不明白为什么这似乎是一个问题。使用一个标签id为的变量。@wOxxOm请阅读我对Hank X的评论。好吧,我看不出没有一个。如果你在扩展中打开某个东西,你应该能够在y中明确跟踪这个操作我们的代码。如果你想找到一种追溯确定这一事实的方法,那么就没有真正可用的方法。有时你可以通过OpenerTab进行检查,但这是不可靠的,如果选项卡关闭或者你从后台/弹出脚本打开了选项卡,则可能会丢失。假设我这样做了
chrome.tabs.moveTab(..
,我得到了一个移动事件。我如何确定这个事件与我的行为有关?我不明白为什么这似乎是一个问题。使用一个标签id为的变量。@wOxxOm请阅读我对Hank X的评论。好吧,我不知道没有一个。不幸的是,它无法工作,因为我的应用程序在某些标签上做了更改,并且在用户做了更改之后在特定选项卡上手动更改。在这种情况下,我将无法检测我的应用程序是否处理了更改。根据你在那里做的事情,你可能会使用10毫秒或100毫秒的超时时间。但是,你没有显示你在做什么,因此我们无法提供帮助,如果这是由新来者提出的,那么问题将是already关闭。我解释了场景,您希望使用哪种代码?我将添加。不幸的是,它无法工作,因为我的应用程序在某些选项卡上进行更改,并且在用户手动更改该特定选项卡之后立即进行更改。在这种情况下,我将无法检测我的应用程序是否处理了更改。根据具体情况,您可能会使用10毫秒或100毫秒的超时关于你在那里做什么。但是你没有展示你在做什么,所以我们无法帮助,如果这是一个新来者提出的问题,那么这个问题就已经结束了。我解释了场景,你想要哪种代码?我会补充。