Clique em acionamentos de eventos no IE / Firefox, mas o Chrome está descartando a atribuição de eventos
Estou no processo de depurar meu aplicativo da web e atingi uma parede. Estou com um comportamento apenas no Google Chrome e a inépcia do meu JavaScript está me impedindo da solução.
Eu tenho uma página ASP com um<asp:Panel>
ao controle. Dentro do painel, eu configurei uma caixa de texto de pesquisa simples e estou usando um<asp:LinkButton>
para iniciar a pesquisa. O usuário digita seu texto de pesquisa e deve poder pressionar enter (porcausa de usabilidade) e os resultados da pesquisa serão exibidos. Isso funciona no IE, mas não no FireFox. Existe umcorreção documentada que eu apliquei na minha página e consegui que o FireFox funcionasse com sucesso. Dourado.
Exceto, a correção não funciona no Google Chrome! Um pouco suspeito, atiro o Firebug para depurar o código ... ah, espere ... é um problema do Chrome. OK, bem eu posso lidar com a depuração de javascript sem o Firebug (soluço) - Eu inicio o depurador do Chrome e passo pelo código. Acontece que a correção do javascript, mencionada anteriormente, está sendo descartada pelo Chrome.
O script de correção é executado no carregamento da página e modifica o manipulador de clique doLinkButton
:
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');
}
E ao executar a página no depurador de cromo, eu entrofunction WebForm_FireDefaultButton()
e chegar à linha:
if (defaultButton && typeof(defaultButton.click) != "undefined") { ... }
e por algum motivodefaultButton.click
se tornou"undefined"
. Estou perplexo ... O que estou perdendo?
Além disso, não estou usando o jQuery e não é uma solução viável.
O HTML produzido:<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>