javascript - 每次加载适当的页面时,如何使脚本仅重定向一次?

标签 javascript greasemonkey userscripts tampermonkey greasemonkey-4

我正在编写一个 Tampermonkey 脚本,我想用它从 youtube.com/* 重定向到 YouTube channel 地址。

window.addEventListener ("load", LocalMain, false);

function LocalMain () {
    location.replace("https://www.youtube.com/channel/*");
}

当脚本运行时,它会重定向到 channel URL,但随后会继续运行并持续重定向

最佳答案

执行这种重定向的标准、更有效执行速度更快的方法是调整脚本的 metadata 甚至不在重定向到的页面上运行。

此外,使用 //@run-at document-start 以获得更好的响应。

所以你的脚本会变成这样:

// ==UserScript==
// @name        YouTube, Redirect to my channel
// @match       https://www.youtube.com/*
// @exclude     https://www.youtube.com/channel/*
// @run-at      document-start
// ==/UserScript==

location.replace("https://www.youtube.com/channel/UC8VkNBOwvsTlFjoSnNSMmxw");

此外,对于此类“广谱”重定向脚本,请考虑使用 location.assign(),以便您或您的用户可以在过度重定向的情况下恢复历史记录中的原始 URL。

关于javascript - 每次加载适当的页面时,如何使脚本仅重定向一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55654803/

相关文章:

JQuery 模拟在输入字段中输入

javascript - 如何在 moz 扩展页面上执行用户脚本?

google-chrome - Chrome 用户脚本 (Greasemonkey) - 阻止 Gmail 发送电子邮件

javascript - 在 Tampermonkey 中模拟 mousedown、click、mouseup 序列?

javascript - jQuery 可以转到另一个页面,抓取 10 个链接,并在第一页上使用它们吗?

javascript - 从 Angular Controller 获取渲染 html

javascript - 如何使用 jQuery 将文本复制到客户端的剪贴板?

javascript - 如何使页面真正重新加载

javascript - 一个合理的请求 : Iframes in IE that indicate loading progress?

JavaScript 正则表达式匹配 2 个单词和一个具有长度限制的空白字符