Haga clic en el evento se dispara en IE / Firefox, pero Chrome está eliminando la asignación de eventos

Estoy en el proceso de depurar mi aplicación web y he golpeado una pared. Estoy experimentando un comportamiento solo en Google Chrome y mi ineptitud de javascript me está impidiendo la solución.

Tengo una página ASP con un<asp:Panel> controlar. Dentro del panel, he configurado un simple cuadro de texto de búsqueda y estoy usando un<asp:LinkButton> para lanzar la busqueda. El usuario ingresa su texto de búsqueda y debe poder presionar enter (parasake usabilidad) y se mostrarán los resultados de la búsqueda. Esto funciona en IE, pero no en FireFox. Hay uncorrección documentada que apliqué a mi página y logré que Firefox funcionara. Dorado.

Excepto, la solución no funciona en Google Chrome! Un poco sospechoso, enciendo Firebug para depurar el código ... oh, espera ... es solo un problema de Chrome. OK, bien, puedo manejar la depuración de javascript sin Firebug (sollozo) - Enciendo el depurador de Chrome y paso a través del código. Resulta que la corrección de javascript, mencionada anteriormente, está siendo eliminada por Chrome.

El script de corrección se ejecuta en la carga de la página y modifica el controlador de clic de laLinkButton:

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');
}

Y cuando ejecuto la página en el depurador de chrome paso afunction WebForm_FireDefaultButton() y llegar a la línea:

if (defaultButton && typeof(defaultButton.click) != "undefined") { ... }

y por alguna razóndefaultButton.click se ha convertido"undefined". Estoy perplejo ... ¿Qué me estoy perdiendo?

Además, no estoy usando jQuery y no es una solución viable.

El HTML producido:

<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> 

Respuestas a la pregunta(1)

Su respuesta a la pregunta