它按预期工作 - 所需的功能是能够使用分号键更轻松地调用 bang!。然而,由于某种原因,它也会导致包含冒号的 URL 永久刷新(实际上它不应该执行任何操作)。
代码如下:
// ==UserScript==
// @name DDG Semicolon Bangs
// @include https://duckduckgo.com/?q*
// ==/UserScript==
window.location.href = window.location.href.replace(/%3B/, '%21');
// End of script
示例测试页面:https://duckduckgo.com/?q=w%3A+greasemonkey
(为什么这会永远刷新?!!?!?!garrrr!)和https://duckduckgo.com/?q=w%3B+greasemonkey
(按预期工作 - 万岁!)
最佳答案
不要指望将窗口位置设置为当前位置时会发生的(特定于浏览器的、非标准的)事情。在替换之前检查该位置是否与您的正则表达式匹配。并使用 location.replace,以避免在浏览器历史记录中设置条目。
var re = /%3B/g;
if (re.test(window.location.href)) {
window.location.replace(window.location.href.replace(re,'%21'));
}
关于javascript - 为什么这个greasemonkey/javascript 代码在冒号上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9998496/