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

我在点击扩展后注入(inject)了这样的代码。但是我想在用户第二次单击扩展图标时删除此注入(inject)的代码。这怎么可能。该代码将注入(inject)一个ID为“pluginHolder”的html div。我可以使用基本的js代码document.getElementById('pluginHolder').remove();手动将其删除。

如何动态地执行此过程?

提前致谢

最佳答案

我认为简单解决方案类似于

if(document.getElementById('pluginHolder')) {
    document.getElementById('pluginHolder').remove()
} else {
   var pluginHolder = document.createElement('div');
   document.body.appendChild(pluginHolder);
}
如果您想影响js代码而不是DOM。
您可以与事件监听器一起使用play,
 function logMouse() {
      console.log(e.x+':'+e.y);
}
// Initialize on first run to true else use old value NOT(!) ( last time injected script)

isEnable = isEnable ? !isEnable : !!isEnable;
if(isEnable) {
    window.addEventListener('mousemove', logMouse);
} else {
    window.removeEventListener('mousemove', logMouse);
}

09-18 14:23