0

它按预期工作 - 所需的功能是能够使用分号键更轻松地调用 bang!'s。但是由于某种原因,它也会导致包含冒号的 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(按预期工作 - 万岁!)

4

1 回答 1

4

不要指望将窗口位置设置为当前位置时发生的(特定于浏览器的、非标准的)事情。在替换之前检查该位置是否与您的正则表达式匹配。并使用 location.replace,以避免在浏览器历史记录中设置条目。

var re = /%3B/g;
if (re.test(window.location.href)) {
    window.location.replace(window.location.href.replace(re,'%21'));
}
于 2012-04-03T18:50:15.897 回答