Klickereignis wird in IE / Firefox ausgelöst, aber Chrome löscht die Ereigniszuweisung

Ich bin gerade dabei, meine Webanwendung zu debuggen und bin an eine Wand geraten. Ich habe nur ein Verhalten in Google Chrome und meine Unfähigkeit, Javascript zu verwenden, hindert mich an der Lösung.

Ich habe eine ASP-Seite mit einem<asp:Panel> Steuerung. Innerhalb des Panels habe ich ein einfaches Suchtextfeld eingerichtet und verwende ein<asp:LinkButton> um die Suche zu starten. Der Benutzer gibt seinen Suchtext ein und sollte in der Lage sein, die Eingabetaste (fürBenutzerfreundlichkeit willen) und die Suchergebnisse werden angezeigt. Dies funktioniert im IE, aber nicht in FireFox. Da ist einFix dokumentiert Ich habe mich auf meine Seite beworben und FireFox erfolgreich zum Funktionieren gebracht. Golden.

Das Update funktioniert jedoch nicht in Google Chrome! Ein bisschen faul, ich starte Firebug, um den Code zu debuggen ... oh, warte ... es ist nur ein Chrome-Problem. OK, gut, ich kann mit dem Debuggen von Javascript ohne Firebug umgehen (Schluchzen) - Ich starte den Chrome-Debugger und gehe den Code durch. Es stellt sich heraus, dass das zuvor erwähnte JavaScript-Update von Chrome gelöscht wird.

Das Fix-Skript wird beim Laden der Seite ausgeführt und ändert den Click-Handler derLinkButton:

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

Und wenn ich die Seite im Chrome-Debugger starte, gehe ich hineinfunction WebForm_FireDefaultButton() und komm zur Linie:

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

und aus irgendeinem GrunddefaultButton.click wurde"undefined". Ich bin ratlos ... Was fehle ich?

Außerdem verwende ich jQuery nicht und es ist keine praktikable Lösung.

Der HTML-Code erzeugte:

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage