3

我正在编写一个简单的 chrome 插件,它会在页面卸载之前拦截新的 URL,如果它包含特定的字符串,我想执行一些操作并使重定向无效!我不知道该怎么做..你能帮我吗?

4

3 回答 3

4

您可以使用API的onBeforeRequest事件进行 Chrome 扩展:webRequest

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"
],
于 2013-05-18T13:18:48.737 回答
1

在窗口卸载之前触发了一个 javascript 事件:window.onbeforeunload

我知道这适用于 Firefox 和 IE,但我读过它并不总是适用于 Chrome。

但是,经过一番挖掘,这似乎在 Chrome 中有效:

$(window).on('beforeunload', function() {
  return 'Your own message goes here...';
});
于 2013-05-18T13:05:55.323 回答
0

据我所知,这是不可能的。首先请求将转到服务器。然后服务器将决定重定向 url。(我正在使用 java)

于 2013-05-18T12:45:24.460 回答