Javascript 多个chrome.webNavigation.onHistoryStateUpdated不工作

Javascript 多个chrome.webNavigation.onHistoryStateUpdated不工作,javascript,google-chrome-extension,Javascript,Google Chrome Extension,这样做的目的是让我的扩展等待历史的改变,根据它所说的,执行特定的操作 这是我到目前为止所拥有的 popup.js chrome.tabs.update({ url: "https://www.WEBSITE.com/messages" }); chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) { if (details.url.indexOf("messages") >= 0) {

这样做的目的是让我的扩展等待历史的改变,根据它所说的,执行特定的操作

这是我到目前为止所拥有的

popup.js

chrome.tabs.update({ url: "https://www.WEBSITE.com/messages" });

chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) {
    if (details.url.indexOf("messages") >= 0) {
        chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
            file: 'getInboxStats.js'
        });;
    } else {//if (details.url.indexOf("match") >= 0) {
        chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
            file: 'startBotting.js'
        });;
    }
});

chrome.runtime.onMessage.addListener(function(message) {
    if (message.type == "emptyAmount") {
        emptyAmount = message.content;
        if (!(percentageOfMessages > 0)) {
            percentageOfMessages = 50;
        }
        amountToSend = Math.floor(emptyAmount * (percentageOfMessages / 100));
        alert(amountToSend);
        chrome.tabs.update({ url: "https://www.WEBSITE.com/match" });
    }

});
var currentAmount = document.getElementsByClassName('count')[1].innerHTML;
var maxAmount = document.getElementsByClassName('total')[0].innerHTML;
var emptyAmount = maxAmount - currentAmount;

chrome.runtime.sendMessage({ content: emptyAmount, type: "emptyAmount" });
alert("TEST");
getInboxStats.js

chrome.tabs.update({ url: "https://www.WEBSITE.com/messages" });

chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) {
    if (details.url.indexOf("messages") >= 0) {
        chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
            file: 'getInboxStats.js'
        });;
    } else {//if (details.url.indexOf("match") >= 0) {
        chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
            file: 'startBotting.js'
        });;
    }
});

chrome.runtime.onMessage.addListener(function(message) {
    if (message.type == "emptyAmount") {
        emptyAmount = message.content;
        if (!(percentageOfMessages > 0)) {
            percentageOfMessages = 50;
        }
        amountToSend = Math.floor(emptyAmount * (percentageOfMessages / 100));
        alert(amountToSend);
        chrome.tabs.update({ url: "https://www.WEBSITE.com/match" });
    }

});
var currentAmount = document.getElementsByClassName('count')[1].innerHTML;
var maxAmount = document.getElementsByClassName('total')[0].innerHTML;
var emptyAmount = maxAmount - currentAmount;

chrome.runtime.sendMessage({ content: emptyAmount, type: "emptyAmount" });
alert("TEST");
startBotting.js

chrome.tabs.update({ url: "https://www.WEBSITE.com/messages" });

chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) {
    if (details.url.indexOf("messages") >= 0) {
        chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
            file: 'getInboxStats.js'
        });;
    } else {//if (details.url.indexOf("match") >= 0) {
        chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
            file: 'startBotting.js'
        });;
    }
});

chrome.runtime.onMessage.addListener(function(message) {
    if (message.type == "emptyAmount") {
        emptyAmount = message.content;
        if (!(percentageOfMessages > 0)) {
            percentageOfMessages = 50;
        }
        amountToSend = Math.floor(emptyAmount * (percentageOfMessages / 100));
        alert(amountToSend);
        chrome.tabs.update({ url: "https://www.WEBSITE.com/match" });
    }

});
var currentAmount = document.getElementsByClassName('count')[1].innerHTML;
var maxAmount = document.getElementsByClassName('total')[0].innerHTML;
var emptyAmount = maxAmount - currentAmount;

chrome.runtime.sendMessage({ content: emptyAmount, type: "emptyAmount" });
alert("TEST");

我遇到的问题是,
getInboxStats.js
启动,但它就像
onHistoryStateUpdated
似乎只工作一次,因为文件
startBotting.js
从未显示一个表示“测试”的警报您误解了
onHistoryStateUpdated
的目的

它通过历史API捕获实例,而不是常规导航。当您调用
update({url:“…”})
时,这是一个常规导航

如果你真的关心浏览器历史记录的更新,你应该使用

如果要使用
webNavigation
API捕获常规导航,则应使用
onCommitted
事件

您还应该查看
chrome.tabs
API