Google chrome extension 停止当前在chrome选项卡中执行脚本

Google chrome extension 停止当前在chrome选项卡中执行脚本,google-chrome-extension,Google Chrome Extension,我试图在用户单击扩展按钮时,使用chrome.tabs.executeScript以编程方式将js注入选项卡。但我面临的问题是,如果我按扩展按钮n次,代码就会被注入n次,因此任何操作,比如在脚本中打开一个新选项卡,都会被执行n次,而在脚本中执行该操作时,会打开n个新选项卡。有没有一种方法可以防止代码在同一个选项卡中被多次注入。或者有没有办法在chrome选项卡中停止当前正在执行的脚本,以便我可以停止该脚本并重新注入它 谢谢。我认为很难强制停止正在运行的脚本。相反,您应该防止内容脚本的多次注册。例

我试图在用户单击扩展按钮时,使用chrome.tabs.executeScript以编程方式将js注入选项卡。但我面临的问题是,如果我按扩展按钮n次,代码就会被注入n次,因此任何操作,比如在脚本中打开一个新选项卡,都会被执行n次,而在脚本中执行该操作时,会打开n个新选项卡。有没有一种方法可以防止代码在同一个选项卡中被多次注入。或者有没有办法在chrome选项卡中停止当前正在执行的脚本,以便我可以停止该脚本并重新注入它


谢谢。

我认为很难强制停止正在运行的脚本。相反,您应该防止内容脚本的多次注册。例如,它可以使用API在按钮所在的页面和内容脚本之间进行通信。也就是说,您可以实现如下代码:

  • (第页)收到单击事件后,禁用按钮
  • (第页)针对某些选项卡插入内容脚本
  • (内容脚本)在内容脚本中完成所有任务后,内容脚本将发送一些消息
  • (第页)收到消息后,启用按钮

  • 我认为很难强制停止正在运行的脚本。相反,您应该防止内容脚本的多次注册。例如,它可以使用API在按钮所在的页面和内容脚本之间进行通信。也就是说,您可以实现如下代码:

  • (第页)收到单击事件后,禁用按钮
  • (第页)针对某些选项卡插入内容脚本
  • (内容脚本)在内容脚本中完成所有任务后,内容脚本将发送一些消息
  • (第页)收到消息后,启用按钮