2014-01-27 65 views
1

我有一個具有圖像的HTA應用程序。當點擊這個圖片時會調用一個子圖片。當「Enter」鍵被擊中時,另一個子被調用。HTA/HTML中的圖像鏈接

這裏的問題是當一個Enter鍵被命中時,這兩個subs都被調用。

請參見下面的代碼,例如...

<head> 

<HTA:APPLICATION> 



</head> 


<script language="VBScript"> 

Sub EnterKey 

    If window.event.Keycode = 13 then 
     MsgBox "Enter was pressed" 
    End If 

    If window.event.Keycode = 27 then 
     MsgBox "Escape was pressed" 
    End If 

End Sub 

Sub DeleteThis 
    MsgBox "Image was clicked" 
End Sub 

</script> 

<body onkeypress="EnterKey"> 

<input type="image" height="27" width="27" onclick="DeleteThis" src="Search.png" alt="Database Search"> 

</body> 

當「Enter」鍵被擊中都「被點擊圖像」 &「輸入按下」得到顯示。我不希望單擊「Enter」時顯示「Image was clicked」消息。

有什麼建議嗎?

+0

不完全相關,但腳本應放置在「head」或「body」中,而不是放在它們之間。 – Teemu

+0

@Teemu我不明白你如何能在頭部和身體頭部中有腳本頭部,沒有任何意義。 –

+0

當你發現HTML5中沒有像「script header」這樣的東西時,它確實有意義。 [''](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html):「'允許的內容:一個元素,後跟一個元素。」「 – Teemu

回答

1

好吧,我想通了這一點,我已經改變了下面的代碼爲圖像鏈接

<input type="image" height="27" width="27" onclick="DeleteThis" src="Search.png" alt="Database Search"> 

<img src="search.png" alt="Database Search" width="27" height="27" onclick="DeleteThis"> 

顯然,它依賴於一個使用標籤...

2

您可以刪除onclick="DeleteThis"以防止該函數被調用。

或者您必須實現條件到功能DeleteThis,以防止按下輸入鍵時的輸出。

Sub DeleteThis 
    If window.event.Keycode != 13 then 
     MsgBox "Image was clicked" 
    End If 
End Sub 
+0

當我把「msgbox window.event.Keycode」我得到輸出爲'0',而不是13,這是奇怪的。然後,再次單擊圖像必須顯示該消息,如果我提出條件,這將不起作用 –

+0

誰知道IE做什麼... – feeela