Mam witrynę, w której występuje problem tylko z przeglądarką IE8:
Kod to:
var w = window.open(urlstring, wname, wfeatures, 'false');
Błąd:
Wiadomość: nieprawidłowy argument.
Wiersz: 419 Znak: 5
Kod: 0
URI: http: // NAZWA HOSTA/js_context.js
Potwierdziłem numer linii kodu („Linia” i „URI” są poprawne) i rozumiem, że w późniejszych wersjach IE8 jest to uważane za poprawne.
Sprawdziłem wszystkie parametry przychodzące w wywołaniu przez zrzucanie alertów i wszystkie wyglądają na prawidłowe.
Ten problem nie występuje na FF (prawdopodobnie 3).
AKTUALIZACJA:
Wydaje się, że problem polega na przypisaniu wyniku funkcji window.open () podczas wykonywania polecenia „var w”. Kiedy podzielę linię na dwie instrukcje, działa to w IE8.
UPDATE2:
Oparte na:
http://javascript.crockford.com/code.html
Gdy funkcja ma zostać wywołana natychmiast, całe wyrażenie wywołania powinno być opakowane w pareny, aby było jasne, że tworzona wartość jest wynikiem funkcji, a nie samej funkcji.
Nie jest to dokładnie to, co się tutaj dzieje, ale stwierdziłem, że zastosowanie zasady rozwiązało problem w trybie zgodności IE8.
var w = (window.open(urlstring, wname, wfeatures, false));