window.location.href redirige le navigateur vers stackoverflow.com lorsque le bouton est cliqué, mais ne le fait pas lorsque l'on appuie sur "Entrée" dans le champ de saisie , malgré les deux écouteurs d'événements utilisant la même fonction visitStack. Si cela vous aide, changer les balises de forme en tags div en quelque sorte le fait fonctionner, mais ce n'est pas sémantique, bien sûr. En changeant "keydown" dans la dernière ligne à "clic", et en déplaçant immédiatement visitStack (e) dans keyDownTextField (e), faites-le fonctionner aussi. Donc, les balises keydown et/ou de forme semblent être les coupables ici, mais je ne suis pas sûr.Javascript: window.location.href ne redirige pas lors de l'appel de la fonction au sein d'une fonction
<form>
<input id="iamtext" type="text" />
<input id="gobutton" type="button" value="Overflow" />
</form>
<script type="text/javascript">
document.getElementById("gobutton").addEventListener("click", visitStack, false);
function visitStack(e) {
e.stopPropagation();
window.location.href = "http://www.stackoverflow.com";
}
function keyDownTextField(e) {
var keyCode = e.keyCode;
if(keyCode==13) {
alert("Entered!");
visitStack(e);
}
}
document.getElementById("iamtext").addEventListener("keydown", keyDownTextField, false);
</script>
ne devrait-il pas être document.location.href? – artemb
J'utilise toujours juste "window.location = newURL;" voir: https://developer.mozilla.org/En/DOM/Window.location – Laimoncijus
@artemb Les deux fonctionnent dans Firefox lorsqu'ils sont testés avec la console Firebug. 'console.log (window.location === document.location);' prints 'true' – Amarghosh