Warum ist diese Codezeile beim Klicken auf eine Schaltfläche mit JavaScript erforderlich?

8

Diese Lösung wurde Diese Frage fragt, wie eine HTML-Schaltfläche ausgelöst wird, wenn Enter in einem Eingabefeld gedrückt wird.

%Vor%

Warum ist if (typeof e == 'undefined' && window.event) { e = window.event; } nescecary? Es scheint zu prüfen, ob das Argument nicht korrekt übergeben wurde, warum nicht? Hängt dies mit der Behebung von Browserkompatibilitätsproblemen zusammen?

    
Celeritas 23.05.2013, 19:13
quelle

1 Antwort

7

Weil alte IE-Versionen eine schreckliche Abscheulichkeit sind, die eine globale Variable event anstelle eines Funktionsarguments verwenden, wie es jeder vernünftige Entwickler verwenden würde.

Aus dem gleichen Grund (da die altenIE-Entwickler verrückt sind) können Sie nicht .addEventListener() in oldIE verwenden, sondern stattdessen .attachEvent() .

Bearbeiten: Sie haben gesehen, dass Sie ein Inline-Ereignis verwenden und das Ereignis immer passieren. Auf diese Weise haben Sie immer ein gültiges Ereignisobjekt im ersten Argument Ihrer Funktion. Sie benötigen den zusätzlichen Code nicht.

    
ThiefMaster 23.05.2013, 19:19
quelle

Tags und Links