2010-05-27 3 views
0

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

Для например:

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

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

+0

В каком браузере вы получаете такое поведение? – CMS

+1

Что вы хотите сделать с возвращаемым значением? – Elangovan

+0

это в IE. И, если возможно, я хочу поместить возвращаемое значение в адресную строку. – kambamsu

ответ

0

А что-то вроде этого:

javascript:function f(){return 42}; var r = f(); alert("The result is " + r); void(0); 
+0

, что было бы очень полезно, если бы мы хотели просто увидеть результат. Но в моей ситуации я хочу захватить ее извне. Так, например, если есть способ поместить его в адресную строку или так, это решит мою проблему. – kambamsu

+0

Итак, что-то вроде 'click me'? –

0

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

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

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

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

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

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

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

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

0

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

Когда дело доходит до выполнения JavaScript в адресной строке с помощью обработчика протокола псевдо javascript см мой ответ на How can empty JavaScript function actually do something?

Смежные вопросы