JavaScript в адресной строке - PullRequest
0 голосов
/ 27 мая 2010

У меня небольшая проблема. Когда я выполняю JavaScript в адресной строке, и функция, которую я там вызываю, возвращает значение. Страница переместится на новую страницу. Чтобы предотвратить это, я использую void (0) в конце. Но как только это будет сделано, как я могу получить возвращенное значение функции.

Например:

javascript:function f(){return 'success'} f();void(0);

Как мне получить возвращаемое значение, когда я набираю его в адресной строке?

Ответы [ 3 ]

0 голосов
/ 27 мая 2010

так что, если я понимаю, это то, что вы хотите:

  • На созданной вами странице вы хотите ввести javascript в адресную строку
  • На странице - вы хотите получить результат от функции, которую вы вводите в адресной строке

Я не уверен, что понимаю причину, по которой вы хотели бы сделать это, поэтому, если вы опишите это, возможно, мой ответ будет не очень хорошим.

Но если вы создали, например, функцию под названием test () на странице, и вы находитесь на этой странице при вводе javascript в адресную строку, вы можете отправлять данные в эту функцию и таким образом захватывать значение в параметре

javascript:function f(){return 'success'} test(f());void(0);

Если у вас есть этот javascript на странице, он будет вызван и появится предупреждение с текстом «success».

<script type="text/javascript">
function test(x)
{
 alert(x);
}
</script>

Я должен сказать, однако, я не могу себе представить, когда использовать это, кроме, возможно, тестирования функций javascript на странице.

0 голосов
/ 27 мая 2010

Невозможно изменить адресную строку без навигации по документу. Это факт.

Когда дело доходит до выполнения javascript в адресной строке с использованием обработчика псевдопротоколов javascript см. Мой ответ на Как пустая функция JavaScript может что-то делать?

0 голосов
/ 27 мая 2010

Что-то вроде этого:

javascript:function f(){return 42}; var r = f(); alert("The result is " + r); void(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...