我的javascript bookmarklet什么也没做,我在哪里搞砸了?

时间:2012-03-14 16:48:23

标签: javascript bookmarklet

所以我有这个书签,它允许我快速切换到我所在的任何页面的测试服务器版本:

javascript:(function() {window.location=window.location.toString().replace(/^http:\/\/www\./,'http://www-test.');})()

我也希望能够在我的网页上切换到调试模式,所以我尝试制作如下的书签,但它似乎不起作用:

javascript:(function() {window.location=window.location.toString().replace(/^php/,'php?action=debug');})()

我搞砸了什么?

3 个答案:

答案 0 :(得分:1)

/^php/匹配启动"php"的字符串。我想你想要匹配字符串的 end

/php$/

答案 1 :(得分:1)

/^php/仅影响以php开头的字符串。由于location.href属性始终包含协议,因此您的代码不会执行任何操作。

您可能正在寻找/php$/,它与字符串末尾的php匹配。

为避免在激活书签时意外刷新,您可以使用:

javascript:(function(){
     if(/php$/.test(location.href)) location.href += '?action=debug';
})()

答案 2 :(得分:1)

可能是^之前的php。由于php出现在字符串的末尾,因此您需要使用$而不是左侧将其锚定到右侧:

javascript:(function() {window.location=window.location.toString().replace(/php$/,'php?action=debug');})()