Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Почему одна и та же функция при разных способах вызова работает по разному? (https://javascript.ru/forum/events/5764-pochemu-odna-i-ta-zhe-funkciya-pri-raznykh-sposobakh-vyzova-rabotaet-po-raznomu.html)

javascript_pupil 03.11.2009 10:27

Почему одна и та же функция при разных способах вызова работает по разному?
 
Вот собственно код:
<html><body>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function FocusSelect(anyname) {
document.getElementById(anyname).focus();
document.getElementById(anyname).select();
return false;
}

//  End -->
</script>

<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><!-- переносы строк для наглядности -->

<p><a href="#" onclick="FocusSelect('source_textarea')">Select code</a></p>
<p><button type="button" onclick="FocusSelect('source_textarea')">Select code</button></p>

</body></html>


При нажатии на кнопку всё работает как надо, а при нажатии на ссылку фокус не работает, хотя выделение текста и происходит.

В чём причина? :help:

IIIEPJIOK 03.11.2009 10:39

У меня все работает....

Kolyaj 03.11.2009 10:48

У ссылки return false желательно добавить, а лучше вообще ссылки для этого не использовать.

javascript_pupil 03.11.2009 10:48

IIIEPJIOK, у Вас скорее всего разрешение экрана большое. Вы добавьте ещё "<br />", чтобы надпись была за видимой частью экрана и увидите разницу. При нажатии на ссылку textarea не появляется в видимой части, а при нажатии на кнопку - появляется.

javascript_pupil 03.11.2009 10:56

Kolyaj, да, заработало. Спасибо! А почему "ссылки лучше не использовать"? Мне по дизайну страницы кнопка не подходит: нужен текст и пиктограмма.

Kolyaj 03.11.2009 11:14

По ссылке должен быть переход на другую страницу, чтобы его не было вам пришлось ставить # в href и return false. onclick можно указать любому другому элементу, span'у например, стилизовав его как требуется.


Часовой пояс GMT +3, время: 09:18.