chrome扩展///我的代码运行了不止一次

时间:2014-11-09 17:55:03

标签: javascript google-chrome-extension tabs

对不起我的英语语法差。

我正在学习制作镀铬扩展程序。

我想检测当前标签网址的更改

的manifest.json

 "permissions": [
        "tabs"
    ],
    "background": {
        "scripts": ["public/js/background.js"],
        "persistent": true
    }

background.js

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    console.log(tab.url);
});

当我更改当前标签的网址时,在控制台中打印3或4个日志

我不了解这种情况。

1 个答案:

答案 0 :(得分:0)

事件被触发多次,至少2次,因为它不仅表示URL更改,还表示状态更改。

请注意,the description表示当URL实际更改时,changeInfo.url存在。所以,你可以这样做:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  if(changeInfo.url) {
    console.log(changeInfo.url);
  }
});

如果您只想跟踪导航,可能需要查看webNavigation API