繁体   English   中英

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

[英]Chrome extension to redirect user on specific urls

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

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

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

urlregex1#redirecttourl1
urlregex2#redirecttourl2
.
.
.

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

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

谁能为我提供正确的实施方向? 我完全迷失在javascript函数,chrome扩展api等之间。

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

// 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' });
        }
    }
});

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

另外,这种方法可以简短地显示列入黑名单的页面,然后将您重定向到blocked_url.html页面。 实验性API webRequest应该可以在加载页面之前过滤请求,但是您无法将其上传到Chrome网上应用店,直到它成为正式的Chrome API的一部分为止。 如果它是供个人使用,请随时使用。

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

挠挠头后,我意外地发现了那件事,从那以后一直是救命的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM