动态更改 chrome.browserAction.onClicked 行为



美好的一天!

我有一个简单的 chrome 扩展程序,可以更改网页的 DOM(更准确地说,它会对评论进行排序)。我有一个背景.js其中包含以下代码:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(
      null, {file : "app.js"});                                                                                                                                                                         
});

因此,当我单击扩展程序的图标时,app.js 就会执行。

我想通过第二次单击图标来重置所有更改。理想情况下,如果我第三次单击该图标,页面将再次排序,依此类推。有没有简单的方法可以做到这一点?

提前谢谢你

Chrome 无法

自动撤消app.js对页面 DOM 所做的更改,但您可以撤消app.js撤消自己的修改。检测到app.js正在第二次运行(将注入脚本中的全局变量设置到扩展的独立世界中),或者为每个选项卡注入一次脚本并发送消息以告知它将页面放入哪个状态。

每个选项卡只注入一次脚本而不使其成为内容脚本看起来很棘手,这会阻止您使用即将到来的activeTab权限,因此记住app.js可能会更好,除非您已经出于其他原因确保单次注入。

最新更新