在用javascript或jquery卸载之前拦截URL



我正在编写一个简单的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)

最新更新