动态更改chrome.browserAction.onClicked行为

时间:2012-12-09 17:31:09

标签: google-chrome-extension

美好的一天!

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

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

当我点击扩展程序的图标时,会执行 app.js

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

提前谢谢

1 个答案:

答案 0 :(得分:1)

Chrome无法自动撤消app.js对网页DOM所做的更改,但您可以让app.js撤消自己的修改。检测到app.js正在第二次运行(将注入的脚本中的全局变量设置为your extension's isolated world)或者每个选项卡注入一次脚本并send a message告诉它哪个状态为将页面放入。

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