J'ai un site qui a un problème avec IE8 uniquement:
Le code est:
var w = window.open(urlstring, wname, wfeatures, 'false');
L'erreur est:
Message: argument non valide.
Ligne: 419 Char: 5
Code: 0
URI: http: //HOSTNAME/js_context.js
J'ai confirmé le numéro de ligne du code (la «ligne» et «l'URI» sont corrects), et je comprends que dans les versions ultérieures d'IE8, cela est considéré comme exact.
J'ai vérifié tous les paramètres entrants de l'appel en vidant les alertes, et ils semblent tous valides.
Ce problème ne se produit pas sur FF (probablement 3).
METTRE À JOUR:
Le problème semble être en utilisant l'affectation du résultat de window.open () lors de l'exécution de "var w". Lorsque je divise la ligne en deux instructions, cela fonctionne dans IE8.
UPDATE2:
Basé sur:
http://javascript.crockford.com/code.html
Lorsqu'une fonction doit être appelée immédiatement, l'expression d'appel entière doit être entourée de parenthèses afin qu'il soit clair que la valeur produite est le résultat de la fonction et non la fonction elle-même.
Ce n'est pas exactement ce qui se passe ici, mais j'ai trouvé que l'application du principe résolvait le problème, en mode de compatibilité d'IE8.
var w = (window.open(urlstring, wname, wfeatures, false));