Chrome扩展程序可在特定网址上重定向用户

我想构建一个chrome扩展,它实质上检查当前域是否在列表中,如果这样将用户重定向到另一个URL,让他单击一个链接,然后转到最初想要的URL。

我对Javascript或chrome扩展没有太多经验,但对于初学者项目来说这似乎很容易。

我想要的是拥有这种结构的文件

urlregex1#redirecttourl1
urlregex2#redirecttourl2
.
.
.

并使用chrome content_script解析每个url并检查其中一个正则表达式是否匹配。

如果是这样,脚本必须以某种方式保存原始URL并重定向用户。

谁能让我在正确的方向上如何实现这个?我完全迷失了javascript函数,chrome扩展api,....

0
嗨Kai你能解释一下你是如何做到这一点的,我基本上是一个在javascript上经验不足的移动开发者,这将是我的第一个插件,你可以帮我这个
额外 作者 DAMM108,

1 答案

您必须在后台页面中设置功能,以便它在所有选项卡上运行。

// add listener for all tabs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    var safesite = false;

    if (changeInfo === "loading") {
       //logic for checking white list, using tab.url

        if (!safesite) {
            chrome.tabs.update(tabId, { url: 'www.google.com' });
        }
    }
});

实际上,您正在向所有选项卡添加事件侦听器。当它加载时,你检查它是否在白名单上。如果是黑名单网站,请将其重定向到您喜欢的任何网址。您还可以在扩展目录中包含.html文件以重定向它们。这将在所有选项卡上触发,包括Web Inspector,因此您可能需要输入一些逻辑来仅检查http(s)请求。

此外,这种方法可以简要地显示黑名单页面,然后将您重定向到blocked_url.html页面。实验API webRequest 应提供过滤请求的功能加载页面,但在成为官方Chrome API的一部分之前,您无法将其上传到Chrome网上应用店。如果是个人使用,请随意使用。

最后一个开发技巧:您只能通过Extensions设置页面调试background.html(chrome:// settings/extensionSettings)。打开您的扩展程序的向下钻取,您将看到“检查活动视图:”,您可以在其中单击指向当前正在运行的任何特定于扩展程序的页面的链接。这样做会打开该页面的Web Inspector。

经过多次头疼,我偶然发现了这一点,从那时起它就一直保持着生命。

4
额外
谢谢,这正是我要找的信息!
额外 作者 Kai,