У меня есть сайт, на котором проблема только с IE8:
Код такой:
var w = window.open(urlstring, wname, wfeatures, 'false');
Ошибка:
Сообщение: недопустимый аргумент.
Строка: 419 Символ: 5
Код: 0
URI: http: //HOSTNAME/js_context.js
Я подтвердил номер строки кода («Строка» и «URI» верны), и я понимаю, что в более поздних версиях IE8 это считается точным.
Я проверил все входящие параметры в вызове, сбросив предупреждения, и все они выглядят действительными.
Эта проблема не возникает на FF (вероятно, 3).
ОБНОВИТЬ:
Проблема, по-видимому, заключается в использовании присвоения результата window.open () при выполнении "var w". Когда я разбиваю строку на два оператора, она работает в IE8.
ОБНОВЛЕНИЕ2:
По материалам:
http://javascript.crockford.com/code.html
Когда функция должна быть вызвана немедленно, все выражение вызова должно быть заключено в скобки, чтобы было ясно, что создаваемое значение является результатом функции, а не самой функцией.
Это не совсем то, что здесь происходит, но я обнаружил, что применение принципа решило проблему в режиме совместимости IE8.
var w = (window.open(urlstring, wname, wfeatures, false));