Google chrome extension Chrome扩展检测谷歌搜索刷新
我的内容脚本如何检测谷歌搜索的刷新? 我相信这是AJAX对页面的重新加载,而不是“真正的”刷新,因此我的事件不会检测到刷新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
在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:和声明,
“选项卡”