gpt4 book ai didi

javascript - 多个 chrome.webNavigation.onHistoryStateUpdated 不工作

转载 作者:行者123 更新时间:2023-11-29 14:42:27 29 4
gpt4 key购买 nike

这样做的目的是让我的扩展程序等待历史记录发生变化,根据它所说的内容,执行特定的操作。

这是我目前的情况

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" });
}

});

getInboxStats.js

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" });

startBotting.js

alert("TEST");

我遇到的问题是 getInboxStats.js 启动了,但好像 onHistoryStateUpdated 似乎只工作了一次,因为文件 startBotting.js 从不显示“测试”的警报

最佳答案

你误解了 onHistoryStateUpdated 的目的。

它捕获 history state manipulation without navigation 的实例通过 History API 而不是常规导航。当您调用 update({url: "..."}) 时,这是一个常规导航。

如果您真的很关心浏览器历史更新,您应该使用 chrome.history.onVisited .

如果你想使用 webNavigation API 来捕获常规导航,你应该使用 onCommitted 事件。

您还应该查看 chrome.tabs API。

关于javascript - 多个 chrome.webNavigation.onHistoryStateUpdated 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36928673/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com