javascript - Chrome 扩展程序可检查链接并重定向到另一个网站

标签 javascript google-chrome-extension

我正在构建一个扩展程序,我想在其中阻止来自 chrome/firefox 浏览器的某些网站网址。

假设我有一个 URL 列表,我想将其设为黑名单。 因此,每当 Chrome 用户想要加入他们时,扩展程序就会重定向到我选择的另一个 URL(在代码中我将确定我想要的 URL)

通过一些研究,我设法为 CHROME 制作了这个

manifest.json

{
    "name": "URL Block",
    "description": "Redirect to another site",
    "version": "1.0",
    "manifest_version": 2,
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "permissions": [
        "webRequest",
                    "*://facebook.com/*",
            "*://www.facebook.com/*",
            "*://apple.com/*",
            "*://www.apple.com/*",
            "*://iptorrents.com/*",
            "*://www.iptorrents.com/*",
        "webRequestBlocking"
    ]
}

background.js

var host = "http://www.google.com";
chrome.webRequest.onBeforeRequest.addListener(
    function(details) {
         return {redirectUrl: host + details.url.match(/^https?:\/\/[^\/]+([\S\s]*)/)[1]};
    },
    {
        urls: [
            "*://facebook.com/*",
            "*://www.facebook.com/*",
            "*://apple.com/*",
            "*://www.apple.com/*",
            "*://iptorrents.com/*",
            "*://www.iptorrents.com/*"
        ],
        types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
    },
    ["blocking"]
);

所以这个扩展非常适合我想做的事情。 但现在我有一些问题。

问题:

假设我希望扩展程序重定向到 2 个不同的 URL (不仅仅是在 google.com 中,如我上面的示例所示。) [这意味着,当我输入网址:www.facebook.com 并按 Enter 键时,扩展程序会将特定选项卡重定向到 www.google.com 并打开一个新选项卡以重定向到 www.abc.com]

最佳答案

我不知道如何在 Chrome 中执行此操作,但使用 Firefox 可以这样做:

How can I change the User Agent in just one tab of Firefox?在该解决方案中,您可以在此处阅读有关redirectTo的信息,而不是使用httpChannel.setRequestHeader执行httpChannel.redirectTo:https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIHttpChannel#redirectTo%28%29

关于javascript - Chrome 扩展程序可检查链接并重定向到另一个网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922586/

相关文章:

javascript - 在 HTTPS 网页上注入(inject) iframe

Javascript 在页面上查找 URL

google-chrome-extension - 在 Vimium 中,默认使用 `f` 键在新选项卡中打开

javascript - 从另一个网站上运行的脚本填充 Google 表单

javascript - 附加 html 中的按键

javascript - 为什么 toLocaleDateString 不能在 react native (Android)中工作?

javascript - 扩展无法访问窗口对象中的自定义函数

javascript - 我可以将 Google Analytics 添加到没有 popup.html 的 Chrome 扩展程序吗?

javascript - Path2D.addPath 被删除了吗?

javascript - 为什么 greasemonkey 检测不到 facebook 中的某些页面更改?