javascript dans une barre d'adresse
-
04-10-2019 - |
Question
J'ai un petit problème. Lorsque l'exécution d'un im javascript dans une barre d'adresse et la fonction que je vous appelle, il retourne une valeur. La page se déplace vers une nouvelle page. Pour éviter cela, j'utiliser un vide (0) à la fin. Mais une fois que cela est fait, comment puis-je saisir la valeur renvoyée de la fonction.
Pour exemple:
javascript:function f(){return 'success'} f();void(0);
Comment capturer la valeur de retour, quand je tape ceci dans une barre d'adresse?
La solution
Qu'en est-il quelque chose comme ceci:
javascript:function f(){return 42}; var r = f(); alert("The result is " + r); void(0);
Autres conseils
donc si je comprends thisis ce que vous voulez:
- Sur une page que vous avez créé vous voulez entrer un javascript dans la barre d'adresse
- Dans la page - vous voulez attraper le résultat de la fonction que vous entrez dans la barre d'adresse
Je ne suis pas sûr que je comprends la raison pour laquelle vous voudriez faire cela, donc si vous décrivez que peut-être ma réponse ne sera pas très bon.
Mais si vous avez créé, par exemple une fonction test appelé () sur une page, et vous êtes sur cette page en entrant le javascript dans la barre d'adresse, vous pouvez envoyer les données dans cette fonction, et donc la capture la valeur d'un paramètre
javascript:function f(){return 'success'} test(f());void(0);
Si vous avez ce javascript sur la page, il sera appelé et une alerte avec le texte « succès » apparaît.
<script type="text/javascript">
function test(x)
{
alert(x);
}
</script>
Je dois dire que, je ne peux pas imaginer quand utiliser cette autre que de tester peut-être des fonctions javascript sur une page.
Il est impossible de modifier la barre d'adresse sans naviguer dans le document. C'est un fait.
En ce qui concerne l'exécution de javascript dans la barre d'adresse en utilisant le gestionnaire de protocole pseudo javascript
voir ma réponse à Comment vider la fonction JavaScript faire en fait quelque chose?