Я нахожусь в процессе отладки своего веб-приложения и столкнулся со стеной. Я наблюдаю поведение только в Google Chrome, и моя неумелость JavaScript не позволяет мне найти решение.
У меня есть страница ASP с элементом управления <asp:Panel>
. На панели я настроил простое текстовое поле поиска и использую <asp:LinkButton>
для запуска поиска. Пользователь вводит свой поисковый текст и должен иметь возможность нажать клавишу ввода (для удобство использования ), и результаты поиска отобразятся. Это работает в IE, но не в FireFox. Существует документированное исправление , которое я применил к своей странице и успешно установил 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"
. Я в тупике ... Чего мне не хватает?
Кроме того, я не использую jQuery, и это не жизнеспособное решение.
<ч />
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>