我正在编写一个简单的chrome插件,在页面卸载之前拦截新的URL,如果它包含一个特定的字符串,我想做一些操作并使重定向无效!我不知道该怎么办……你能帮我吗?
您可以使用webRequest
API的onBeforeRequest
事件Chrome扩展:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
// do some actions
// ...
return {cancel: true};
},
// block requests matching this url
{urls: ["*://www.evil.com/*"]},
["blocking"]
);
确保你在manifest.json
文件中有正确的权限:
你必须在扩展清单中声明"webRequest"权限来使用web请求API,以及主机权限对于你想要访问的网络请求的任何主机。
"permissions": [
"webRequest",
"webRequestBlocking",
"*://*.google.com"
],
在窗口卸载之前触发一个javascript事件:window.onbeforeunload
我知道这在Firefox和IE中有效,但我读到它在Chrome中并不总是有效。
然而,经过一番挖掘,这似乎在Chrome中工作:
$(window).on('beforeunload', function() {
return 'Your own message goes here...';
});
据我所知这是不可能的。首先,请求将发送到服务器。然后服务器将决定重定向url。(我正在使用java)