我的javascript bookmarklet什么都不做,我哪里搞砸了?

我的javascript bookmarklet什么都不做,我哪里搞砸了?,javascript,bookmarklet,Javascript,Bookmarklet,因此,我有了这个bookmarklet,它允许我快速切换到我所在页面的测试服务器版本: javascript:(function() {window.location=window.location.toString().replace(/^http:\/\/www\./,'http://www-test.');})() 我还希望能够在我的网页上切换到调试模式,因此我尝试制作一个书签,如下所示,但似乎不起作用: javascript:(function() {window.location=w

因此,我有了这个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');})()

我搞砸了什么?

/^php/
匹配以
“php”
开头的字符串。我猜您希望匹配字符串的结尾:

/php$/

/^php/
匹配以
“php”
开头的字符串。我猜您希望匹配字符串的结尾:

/php$/

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

您可能正在查找与字符串末尾的php匹配的
/php$/

要避免在激活bookmarklet时意外刷新,您可以使用:

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

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

您可能正在查找与字符串末尾的php匹配的
/php$/

要避免在激活bookmarklet时意外刷新,您可以使用:

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

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

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

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

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