2014-01-27 2 views
1

У меня есть приложение HTA, которое имеет изображение. При нажатии на это изображение вызывается суб. Когда нажата клавиша «Ввод», вызывается другая суб.Ссылки на изображения в HTA/HTML

Проблема здесь, когда нажата клавиша Enter, оба вызываются.

Смотрите ниже код, например ...

<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 прессовали» получает отображается. Я не хочу, чтобы сообщение «Изображение было нажато» было отображено при нажатии «Ввод».

Любые предложения?

+0

Непосредственно, но скрипты должны размещаться либо в 'head', либо в' body', а не между ними. – Teemu

+0

@Teemu Я не понимаю, как вы можете иметь заголовок сценария в заголовках Head и body, не имеет смысла. –

+0

Имеет смысл, когда вы узнаете, что в HTML нет такой вещи, как «заголовок сценария». [''] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html): «Разрешенный контент: один элемент , за которым следует один элемент .'» – Teemu

ответ

1

Ok я понял это, я изменил код ниже для ссылки изображения

<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