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

时间:2016-01-25 08:24:50

标签: google-chrome-extension

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

感谢。

1 个答案:

答案 0 :(得分:0)

我认为强行停止运行脚本很困难。相反,您应该阻止内容脚本的多次注册。例如,它可以在按钮所具有的页面与具有chrome.runtime.sendMessage() API的内容脚本之间进行通信。也就是说,您可以实现如下代码:

  1. (页面)收到点击事件后,请禁用该按钮。
  2. (页面)根据某个选项卡注入您的内容脚本。
  3. (内容脚本)当在内容脚本中完成所有任务时,内容脚本会发送一些消息。
  4. (页面)收到消息后,启用按钮。