2015-12-15 74 views
0

我是javascript中的一個總newby,我被一個問題困住了。javascript:window.location.href裏面的一個「if」

一切都在這個「體」內發生的事情:

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

此代碼的工作:當我按下逃脫頁面上,有一個與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\"; 
} 

但是這個不起作用:當我按下任何鍵時什麼也沒有發生。我想按Esc鍵會使頁面(就像的改變沒有「如果」,這是不是這樣的。

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

可以在任何一個向我解釋爲什麼「window.location的」不內的工作「如果」?我做了什麼錯?我真的不知道在所有....

非常感謝你。

+0

有什麼用''\\? – epascarello

+0

這是因爲它位於腳本外殼中的回聲「...」內。 – Dreamk33

回答

1

你很可能得函數調用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; 
      } 
    } 

} 
+0

這很快謝謝你...它的作品! – Dreamk33

+0

我不記得跨瀏覽器版本讓我看看它。 – HTDE

+0

e.returnValue = false; – HTDE

1

一段時間,我可以幫

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

謝謝你的回答。它也工作!如果我想爲另一個鍵(例如一個或兩個鍵)添加另一個動作,現在該怎麼辦?我試過了,但如果按第一個或第二個鍵,它只會給我第二個動作。 – Dreamk33