JavaScript “window.open” код не будет работать в Internet Explorer 7 или 8

Я использую этот блок jQuery/кода JavaScript на моем сайте для открытия всплывающего окна:

$('#change_photo_link').click(function(){
    $id = $('#id').attr('value');

    window.open("photo.upload.php?id=" + $id,"Upload Photo",
    "menubar=no,width=430,height=100,toolbar=no");
});

Этот код работает над Firefox и Chrome. Это не работает над IE7, или IE8 (не протестировали IE6). IE открывается ошибка на строке window.open. Почему? Ошибкой, которую дает IE, является "Недействительный аргумент", и это - все.

9
задан Hogan 3 February 2010 в 03:49
поделиться

2 ответа

Я использовал код @ Dearmash, предоставленный в утилите захвата экрана, поставляемой с моим приложением с открытым исходным кодом BugTracker.NET. Приложение не очень большое, поэтому, если вы делаете захват экрана, это может быть хорошей отправной точкой. Дополнительная информация здесь:

http://ifdefined.com/blog/post/Screen-capture-utility-in-C-NET.aspx

-121--4321292-

Может ли это быть потому, что это более агрессивно с включением?

-121--3418681-

Это пространство во втором параметре, которое его вызывает. Если вы используете UploadPhoto вместо Upload Photo, это работает:

$('#change_photo_link').click(function(){
    $id = $('#id').attr('value');

    window.open("photo.upload.php?id=" + $id,"UploadPhoto",
    "menubar=no,width=430,height=100,toolbar=no");
});

Я не могу найти никаких официальных причин, почему наличие пробела в параметре windowName в window.open () вызывает ошибку, но это, скорее всего, просто деталь реализации. windowName используется в качестве внутренней ссылки и может использоваться в качестве значения для целевого атрибута привязки или формы, поэтому я полагаю, что IE не может обработать это внутри. В справочных документах для Gecko/Firefox говорится, что этот параметр должен не содержать места, но очевидно, что текущие версии Gecko не имеют проблем с ним, если это так.

32
ответ дан 4 December 2019 в 06:16
поделиться

Аргумент имя окна может содержать только буквенно-цифровые символы и знаки подчеркивания (т.е. [A-Z0-9_]).

Вы должны изменить

window.open("photo.upload.php?id=" + $id,"Upload Photo",
"menubar=no,width=430,height=100,toolbar=no");

на

window.open("photo.upload.php?id=" + $id,"Upload_Photo",
"menubar=no,width=430,height=100,toolbar=no");

или другое имя, не содержащее пробелов.

See https://developer.mozilla.org/En/DOM/Window.open.

9
ответ дан 4 December 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: