如何阻止网络浏览器遵循特定网站中的重定向?

如何阻止网络浏览器遵循特定网站中的重定向?

我试图阻止自己使用Google 搜索控制台让我回到谷歌搜索,由于上瘾行为Google 搜索控制台*.

以下 JavaScript 代码可从此处的 Web 浏览器控制台运行,但不是来自用户脚本:

window.setInterval( () => {
    const urlPatternToBlock = [
        'https://search.google.com/'
    ];

    for (const element of urlPatternToBlock) {
        if (window.location.href.includes(urlPatternToBlock)) {
        window.open("https://google.com/", "_self");
        }
    }
}, 1000);

不起作用的用户脚本是:

// ==UserScript==
// @name        New Userscript
// @run-at      document-start
// @match       *
// ==/UserScript==

window.setInterval( () => {
    const urlPatternToBlock = [
        'https://search.google.com/'
    ];

    for (const element of urlPatternToBlock) {
        if (window.location.href.includes(urlPatternToBlock)) {
        window.open("https://google.com/", "_self");
        }
    }
}, 1000);

我认为此代码只能从控制台运行,而不能从脚本运行,是因为存在 301 重定向或其他重定向。
顺便说一下,URL 仍然是相同的在里面URL 字段网络浏览器的,所以如果这里有重定向,它一定是难以捉摸的。

如何防止网络浏览器遵循特定网站的重定向?
此特定网站与任何敏感信息(如付款详细信息、密码或其他任何内容)无关,因此一般来说阻止其重定向不是问题。

更新

通过修改命令使用单个值执行的以下代码@match可以工作,但它仍然不能解决我原来的问题,该问题处理值数组。

// ==UserScript==
// @name        google_single_value
// @run-at      document-start
// @match       https://search.google.com/search-console/*
// ==/UserScript==

if (window.location.href.includes('https://search.google.com')) {
    window.open("https://google.com/", "_self");
};

答案1

您的用户脚本由于无效而无法运行match。如果您希望它影响所有网站,则可以使用以下方法:

// @match *://*/*

然后你的脚本就可以正常工作了。Tampermonkey 基本上遵循浏览器使用的 URL 匹配模式,例如本文档了解有关该[scheme]://[host]/[path]模式的更多详细信息。

但它可以简化为:

// ==UserScript==
// @name        google_single_value
// @run-at      document-start
// @match       https://search.google.com/*
// ==/UserScript==

window.location.replace("https://google.com")

如果您想重定向所显示的模式。

window.location.replace顺便说一下,建议进行重定向,因为它不会添加历史记录。

相关内容