0

再会!

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

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

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

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

先感谢您

4

1 回答 1

1

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

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

于 2012-12-10T00:02:14.997 回答