javascript : window.location.href 在 "if" 里面

javascript : window.location.href inside a "if"

我是 javascript 的新手,遇到了一个问题。

一切都发生在这个 "body" :

<body onKeyDown="myFunction(event);">

此代码有效:当我在页面上按 escape 时,会弹出一个 27。当我按另一个键时,没有任何反应。这就是我想要的。

Key_ESC = 27;
function myFunction(event) {
    if ( event.keyCode == 27 ){
        alert(event.keyCode);
    }
}

此代码有效:当我按任意键时,我转到下一页。这就是我想要的。

Key_ESC = 27; 
function myFunction(event) {
        window.location.href=\"$INDEX/image`expr $compteur + 1`.html\";
}

但是这个不起作用:当我按任意键时没有任何反应。我以为按 escape 会改变页面(就像没有 "if" 一样。事实并非如此。

Key_ESC = 27;
function myFunction(event) {
    if ( event.keyCode == 27 ){
        window.location.href=\"$INDEX/image`expr $compteur + 1`.html\";
    }
}

任何人都可以向我解释为什么 "window.location" 在 "if" 中不起作用吗?我做错了什么 ?我真的一点都不知道....

非常感谢。

您可能需要致电 event.preventDefault

此外,在 JS 中只需执行:

window.onload = function ()
{

Key_ESC=27;
Key_LEFT=37;

document
.   event = 
    {   preventDefault: function( e )
        {   e.preventDefault?e.preventDefault():e.returnValue=false;
        }
    }
;
document.body
.   onkeyup = function nextPage ( e )
    {   
        switch
        (   e.keyCode
        )   {   case Key_ESC
                :   document.event.preventDefault(e);
                    window.location.href=URL_NEXT;
                case Key_LEFT
                :   document.event.preventDefault(e);
                    window.location.href=URL_PREV;
            } 
    }

}

有时间我可以帮忙

function myFunction(event) {
    if (event.keyCode == 27){
        window.location.href="<%= request.getContextPath()%>/INDEX/imagename.html";
    }
}