Google chrome extension Chrome扩展检测谷歌搜索刷新

Google chrome extension Chrome扩展检测谷歌搜索刷新,google-chrome-extension,firefox-addon-webextensions,Google Chrome Extension,Firefox Addon Webextensions,我的内容脚本如何检测谷歌搜索的刷新? 我相信这是AJAX对页面的重新加载,而不是“真正的”刷新,因此我的事件不会检测到刷新 在Google Chrome扩展和Firefox WebExtensions插件中都能检测到它吗?Google搜索是一个动态更新的页面。有几种众所周知的方法可以检测更新:、基于计时器的方法(参见包装器)和站点使用的事件,如GitHub上的pjax:end 幸运的是,Chrome浏览器中的Google搜索使用了消息事件,因此我们的内容脚本如下: window.addEvent

我的内容脚本如何检测谷歌搜索的刷新? 我相信这是AJAX对页面的重新加载,而不是“真正的”刷新,因此我的事件不会检测到刷新


在Google Chrome扩展和Firefox WebExtensions插件中都能检测到它吗?

Google搜索是一个动态更新的页面。有几种众所周知的方法可以检测更新:、基于计时器的方法(参见包装器)和站点使用的事件,如GitHub上的pjax:end

幸运的是,Chrome浏览器中的Google搜索使用了
消息
事件,因此我们的内容脚本如下:

window.addEventListener('message',函数onMessage(e){
//控制台日志(e);
如果(e.data的类型==='object'&&e.data.type==='sr'){
onSearchUpdated();
}
});
函数onSearchUpdated(){
document.getElementById('resultStats').style.backgroundColor='yellow';
}
例如,该方法依赖于一个在Firefox中不起作用的未记录的站点功能

Chrome扩展和WebExtensions提供的一种更可靠的交叉浏览器方法是监视页面url的更改,因为Google搜索结果页面总是更新其url哈希部分。我们需要一个、监听器和:

  • background.js

    var rxGoogleSearch=/^https?:\/\/(www.)?谷歌\.(com.\w\w(\.\w\w)?)\/.[?\&]q=/;
    chrome.tabs.onUpdate.addListener(函数(tabId、changeInfo、tab){
    if(rxGoogleSearch.test(changeInfo.url)){
    chrome.tabs.sendMessage(tabId,“url更新”);
    }
    });
    
  • content.js

    chrome.runtime.onMessage.addListener(函数(msg、sender、sendResponse){
    如果(消息=='url更新'){
    onSearchUpdated();
    }
    });
    函数onSearchUpdated(){
    document.getElementById('resultStats').style.backgroundColor='yellow';
    }
    
  • manifest.json:和声明,
    “选项卡”


firefox还有其他功能吗?实现此事件时,不会触发该函数。我认为message对象不包含if语句中指定的键。但这怎么可能呢?对不起,我是OT