Долгое время в проекте, над которым я работал, авторизация в браузере
Opera проходила как-то не так.
Суть проблемы была в том, что в браузере
Opera 12.10, когда я в текстовое поле вводил пароль и нажимал
Enter, авторизация не происходила (по нажатию
Enter должна была нажаться ссылка
OK). Хотя в других браузерах все работало прекрасно:
Firefox 17.0.1,
IE 9 и
Chrome 24.
Вот упрощенный пример:
<input value="" onkeypress="enterButtonClick(event)" />
<a id="link" href="#" onclick="alert('hello')">ОК</a> |
<input value="" onkeypress="enterButtonClick(event)" />
<a id="link" href="#" onclick="alert('hello')">ОК</a>
Сам скрипт:
<script type="text/javascript" language="JavaScript">
function enterButtonClick(e){
if(e.keyCode == 13){//Клавиша Enter
document.getElementById('link').click();
}
}
</script> |
<script type="text/javascript" language="JavaScript">
function enterButtonClick(e){
if(e.keyCode == 13){//Клавиша Enter
document.getElementById('link').click();
}
}
</script>
Долго искал решение. Оказалось в
Opera нужно предотвращать стандарстное действие клавиши
Enter, т.к. она перебивала клик на ссылке! Это делается методом
preventDefault объекта
event.
<script type="text/javascript" language="JavaScript">
function enterButtonClick(e){
if(e.keyCode == 13){//Клавиша Enter
document.getElementById('link').click();
e.preventDefault();//предотвратить стандартное действие клавиши
}
}
</script> |
<script type="text/javascript" language="JavaScript">
function enterButtonClick(e){
if(e.keyCode == 13){//Клавиша Enter
document.getElementById('link').click();
e.preventDefault();//предотвратить стандартное действие клавиши
}
}
</script>
Добавить комментарий