У меня есть сайт, на котором проблема только с 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));
Ответы:
Это старый пост, но, возможно, он кому-то пригодится.
У меня было такое же сообщение об ошибке. В конце концов, проблема заключалась в неверном имени для второго аргумента, т.е. у меня была такая строка:
Проблема заключалась в "заголовке окна", поскольку он недействителен. Он отлично работал со следующей строкой:
Фактически, внимательно прочитав, я понял, что Microsoft не поддерживает
name
второй аргумент. Когда вы посмотрите на официальную страницу документации , вы увидите, что Microsoft допускает только следующие аргументы, если они вообще используются:источник
IE придирчив к аргументу имени окна. Он не любит пробелы, тире и другие знаки препинания.
источник
Когда вы вызываете
window.open
IE, второй аргумент (имя окна) должен быть либо одной из предопределенных целевых строк, либо строкой, которая имеет форму действительного идентификатора в JavaScript.Итак, что работает в Firefox: «Каталог заданий 9463460», не работает в Internet Exploder, и его нужно заменить, например, на: «Job_Directory_9463460» (без пробелов, без знаков минус, без точек, это должен быть действительный идентификатор) .
источник
проблема может быть в имени wname, попробуйте использовать одно из тех, что указаны в приведенной выше ссылке, цитирую:
при использовании другого wname window.open не будет выполняться ...
источник
На самом деле можно использовать имя, но оно не может содержать пробелов, поэтому оно
window.open("../myPage","MyWindows",...)
должно работать без проблем ( window.open ).источник
Я также столкнулся с этой проблемой, когда использовал следующий код:
но когда я удаляю пустое место в «Заголовке окна», работает следующий код:
источник
Привет, используя следующий код, он работает ...
Раньше входил как
Значит, Microsoft не позволяет вам вводить имя окна, оно должно быть пустым в
window.open
функции ...Спасибо, Нилеш Пангул
источник
Для меня проблема заключалась в тире «-» в поле имени окна. Я удалил тире, и IE не выдает ошибок и фактически открывает окно.
источник
Что представляет четвертая позиция, которая имеет значение false? Разве это не должно быть ложью (т.е. без кавычек?). Возможно, что более ранние версии IE будут преобразовывать строку в логическое значение, а более новые - нет.
источник
Ответы здесь верны в том смысле, что IE не поддерживает пробелы при установке заголовка в window.open (), ни один, похоже, не предлагает обходного пути.
Я удалил заголовок из моего вызова window.open (вы можете использовать null или ''), и hten добавил на открываемую страницу следующее:
Это ни в коем случае не идеально, но это позволит вам установить любой заголовок во всех браузерах.
источник
Попробуйте удалить последний аргумент. Кроме этого, убедитесь, что существуют urlstring, wname и wfeatures.
источник
Я обнаружил ту же проблему и после прочтения первого ответа, который предположил, что проблема вызвана именем окна, изменил его: сначала на _blank, который работал нормально (как совместимость, так и обычный вид), затем на предыдущее значение, только минус пробел в значении :) - тоже работал. IMO, проблема (или ее часть) вызвана тем, что IE не может использовать обычное строковое значение в качестве wname. Надеюсь, это поможет, если кто-нибудь столкнется с той же проблемой.
источник
Если вы хотите использовать имя нового окна и т. Д., Разместив форму в этом окне, тогда решение, работающее в IE, FF, Chrome:
источник
Кажется, что даже при использовании «действительного» имени настраиваемого окна (не _blank и т. Д.) С помощью window.open для запуска нового окна все еще возникают проблемы. Он отлично работает при первом нажатии на ссылку, но если вы щелкнете по ней еще раз (с открытым первым окном), вы получите сообщение об ошибке «Ошибка: такой интерфейс не поддерживается».
источник