У меня есть сайт с проблемой только для 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.
UPDATE2:
На основании:
http://javascript.crockford.com/code.html
Когда функция должна быть вызвана немедленно, все выражение вызова должно быть заключено в скобки, чтобы было ясно, что создаваемое значение является результатом функции, а не самой функции.
Это не совсем то, что здесь происходит, но я обнаружил, что применение принципа решило проблему в режиме совместимости IE8.
var w = (window.open(urlstring, wname, wfeatures, false));