Событие щелчка срабатывает в IE / Firefox, но Chrome отбрасывает назначение события
Я нахожусь в процессе отладки своего веб-приложения и попал в стену. Я испытываю поведение только в Google Chrome, и моя неумелость JavaScript не позволяет мне найти решение.
У меня есть страница ASP с<asp:Panel>
контроль. На панели я настроил простое текстовое поле поиска и использую<asp:LinkButton>
начать поиск. Пользователь вводит свой текст поиска и должен иметь возможность нажать Enter (дляудобство использования) и результаты поиска будут отображаться. Это работает в IE, но не в FireFox. Eстьзадокументированное исправление который я применил к своей странице и успешно установил FireFox. Golden.
За исключением того, что исправление не работает в Google Chrome! Немного подозрительно, я запускаю Firebug для отладки кода ... о, подождите ... это проблема только Chrome. Хорошо, я могу справиться с отладкой JavaScript без Firebug (sob) - Я запускаю отладчик Chrome и перебираю код. Оказывается, что исправление javascript, упомянутое ранее, удаляется Chrome.
Сценарий исправления запускается при загрузке страницы и изменяет обработчик нажатийLinkButton
:
var defaultButton = document.getElementById('<%= lnkSearch.ClientID %>');
if (defaultButton && typeof(defaultButton.click) == 'undefined') {
defaultButton.click = function() {
alert('function fired');
var result = true;
if (defaultButton.click) result = defaultButton.onclick();
if (typeof(result) == 'undefined' || result) {
eval(defaultButton.getAttribute('href'));
}
};
alert(typeof(defaultButton.click) != 'undefined');
}
И при запуске страницы в отладчике Chrome я вхожу вfunction WebForm_FireDefaultButton()
и добраться до линии:
if (defaultButton && typeof(defaultButton.click) != "undefined") { ... }
и по какой-то причинеdefaultButton.click
стал"undefined"
, Я в тупике ... Чего мне не хватает?
Also, I'm not using jQuery and it isn't a viable solution.
HTML-код:<div id="abc_pnlSearchPanel" language="javascript" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'abc_lnkSearch')">
<div class="searchPanel">
<span class="searchText">
Type in stuff to search:
</span>
<span style="float: left;">
<input name="abc:txtSearch" type="text" id="abc_txtSearch" style="width:312px;" />
</span>
<a onclick="this.blur();" id="abc_lnkSearch" class="ButtonLayout" href="javascript:__doPostBack('abc$lnkSearch','')"><span>Search</span></a>
<div style="clear: both"></div>
</div>
</div>