J'ai un site qui a un problème uniquement avec IE8 :
Le code est :
var w = window.open(urlstring, wname, wfeatures, 'false');
L'erreur est :
Message : Argument invalide.
Ligne : 419 Caractère : 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 dans l'appel en vidant les alertes, et ils semblent tous valides.
Ce problème ne se produit pas sur FF (probablement 3).
UPDATE :
Le problème semble résider dans l'utilisation de l'affectation du résultat de window.open() lors de l'exécution de "var w". Lorsque je divise la ligne en deux déclarations, cela fonctionne dans IE8.
UPDATE2 :
Basé sur :
http://javascript.crockford.com/code.html
Lorsqu'une fonction doit immédiatement, l'ensemble de l'invocation 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 constaté que l'application de ce principe a résolu le problème, dans le mode de compatibilité d'IE8.
var w = (window.open(urlstring, wname, wfeatures, false));
0 votes
J'ai eu le même problème, et le post de David est la meilleure réponse. Merci pour votre message et pour l'aide de David.