Мой javascript bookmarklet ничего не делает, где я все испортил? - PullRequest
0 голосов
/ 14 марта 2012

Итак, у меня есть этот букмарклет, который позволяет мне быстро переключаться на версию тестового сервера для любой страницы, на которой я сейчас:режим на моих веб-страницах, поэтому я попытался создать букмарклет, как показано ниже, но он не работает:

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

Что я облажался?

Ответы [ 3 ]

1 голос
/ 14 марта 2012

/^php/ влияет только на строку, начинающуюся с php. Поскольку свойство location.href всегда включает протокол, ваш код ничего не делает.

Возможно, вы ищете /php$/, который соответствует php в конце строки.

Чтобы избежать случайного обновления при активации букмарклета, вы можете использовать:

javascript:(function(){
     if(/php$/.test(location.href)) location.href += '?action=debug';
})()
1 голос
/ 14 марта 2012

Вероятно, это ^ до php.Поскольку php находится в конце строки, вам нужно привязать его вправо с помощью $, а не слева:

javascript:(function() {window.location=window.location.toString().replace(/php$/,'php?action=debug');})()
1 голос
/ 14 марта 2012

/^php/ соответствует строке, которая начинается с "php". Я думаю, вы хотите соответствовать end строки:

/php$/
...