Ich habe eine Site, die nur ein IE8-Problem hat:
Der Code lautet:
var w = window.open(urlstring, wname, wfeatures, 'false');
Der Fehler ist:
Nachricht: Ungültiges Argument.
Zeile: 419 Zeichen: 5
Code: 0
URI: http: //HOSTNAME/js_context.js
Ich habe die Zeilennummer des Codes bestätigt (die "Zeile" und "URI" sind korrekt) und ich verstehe, dass dies in späteren Versionen von IE8 als korrekt angesehen wird.
Ich habe alle eingehenden Parameter im Aufruf überprüft, indem ich Warnungen ausgegeben habe, und sie sehen alle gültig aus.
Dieses Problem tritt bei FF nicht auf (wahrscheinlich 3).
AKTUALISIEREN:
Das Problem scheint darin zu liegen, das Ergebnis von window.open () zuzuweisen, wenn "var w" ausgeführt wird. Wenn ich die Zeile in zwei Anweisungen aufteile, funktioniert das in IE8.
UPDATE2:
Beyogen auf:
http://javascript.crockford.com/code.html
Wenn eine Funktion sofort aufgerufen werden soll, sollte der gesamte Aufrufausdruck in Parens eingeschlossen werden, damit klar ist, dass der erzeugte Wert das Ergebnis der Funktion und nicht der Funktion selbst ist.
Dies ist nicht genau das, was hier vor sich geht, aber ich fand heraus, dass die Anwendung des Prinzips das Problem im Kompatibilitätsmodus von IE8 löste.
var w = (window.open(urlstring, wname, wfeatures, false));