ie8 var w = window.open () - "Сообщение: неверный аргумент." - PullRequest
113 голосов
/ 02 апреля 2009

У меня есть сайт с проблемой только для IE8:

Код:

var w = window.open(urlstring, wname, wfeatures, 'false');

Ошибка:

Сообщение: неверный аргумент.
Линия: 419 Char: 5
Код: 0
URI: http://HOSTNAME/js_context.js

Я подтвердил номер строки кода («Строка» и «URI» верны), и я понимаю, что в более поздних версиях IE8 это считается точным.

Я проверил все входящие параметры в вызове, сбросив оповещения, и все они выглядят действительными.

Эта проблема не возникает на FF (вероятно, 3).

UPDATE:

Проблема заключается в использовании присваивания результата window.open () при выполнении «var w». Когда я разделяю строку на два утверждения, это работает в IE8.

ОБНОВЛЕНИЕ 2:

На основании:

http://javascript.crockford.com/code.html

Когда должна быть вызвана функция немедленно весь вызов выражение должно быть обернуто в паранах так что понятно что значение производится является результатом функция, а не сама функция.

Это не совсем то, что здесь происходит, но я обнаружил, что применение принципа решило проблему в режиме совместимости IE8.

var w = (window.open(urlstring, wname, wfeatures, false));

Ответы [ 14 ]

0 голосов
/ 17 апреля 2014

Кажется, что даже при использовании «правильного» имени настраиваемого окна (не _blank и т. Д.) С использованием window.open для запуска нового окна все еще есть проблемы. Он отлично работает при первом нажатии на ссылку, но если вы щелкнете по ней еще раз (с первым запущенным окном, все еще работающим), вы получите отладку сценария «Ошибка: такой интерфейс не поддерживается».

0 голосов
/ 24 марта 2011

Если вы хотите использовать имя нового окна и т. Д., Разместив форму в этом окне, то решение, которое работает в IE, FF, Chrome:

  var ret = window.open("", "_blank");
  ret.name = "NewFormName";

  var myForm = document.createElement("form");
  myForm.method="post";
  myForm.action = "xyz.php";
  myForm.target = "NewFormName";

      ...
0 голосов
/ 05 августа 2009

Я обнаружил ту же проблему и после прочтения первого ответа, который предположил, что проблема вызвана именем окна, изменил его: сначала на «_blank», который работал нормально (как совместимость, так и обычный просмотр), затем на предыдущее значение , только минус пространство в значении :) - тоже сработало. IMO, проблема (или ее часть) вызвана тем, что IE не может использовать обычное строковое значение в качестве имени wname. Надеюсь, это поможет, если кто-то столкнется с той же проблемой.

0 голосов
/ 02 апреля 2009

Попробуйте убрать последний аргумент. Кроме этого, убедитесь, что существуют urlstring, wname и wfeatures.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...