javascript - chrome.tabs.onUpdated.addListener - 立即报告changeInfo.status == 'complete'

标签 javascript google-chrome google-chrome-extension

我的扩展程序适用于 Facebook。它在第一次加载时正确记录选项卡状态更改,但如果我通过当前页面上的链接导航到另一个页面,则它会在单击时立即报告 changeinfo.status == 'complete'。

我找不到任何表明我犯了错误的内容

chrome.tabs.onUpdated.addListener(check);


function check(tab_id, changeinfo, tab){
    console.log("tab change: " + changeinfo.status);
    // make sure the page is done loading
    if ( !(tab.url !== undefined && changeinfo.status == "complete")) {
        return;
    }
    if(tab.url.match(/facebook.com\/[^\/]*$/)){ //if the url of the tab matches a certain website 
        chrome.pageAction.show(tab_id); //show the icon (by default it is not shown).

        console.log("accepted state: " + changeinfo.status);
    }
}

最佳答案

你可以尝试使用 webNavigation API如果它符合您的需求

list

"permissions": ["webNavigation"]

后台脚本

chrome.webNavigation.onCompleted.addListener(function(details) {
  if (details.url.startsWith('https://www.facebook.com/')) {
    chrome.pageAction.show(details.tabId); 
  }
});

关于javascript - chrome.tabs.onUpdated.addListener - 立即报告changeInfo.status == 'complete',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922683/

相关文章:

javascript - Chrome 扩展程序弹出窗口不起作用,点击事件未处理

python - 为什么 Google 的 PEM 中还剩下 40 个字符用于打包 Chrome 扩展程序

javascript - Google Chrome 扩展程序可以检测所有脚本何时完成加载吗?

javascript - 如何让 For 循环等待 Firebase 数据库响应?

javascript - 根据此 JSON 结果编写此 HTML(解析 JSON)

javascript - 在 chrome javascript 控制台中触发表单提交

html - 如何更改 Google Chrome 中 <option> 元素的背景颜色?

javascript - 带有 react-bootstrap 的 float 标签

javascript - Cypress stub 似乎产生来自实际服务器的响应

jquery - 无法在 Chrome 扩展中使用 JQuery