2014-12-29 5 views
1

Этот вопрос сводит меня с ума, у меня есть приложение, которое ссылается через .asp страниц и в одном из этих страниц есть функция Javascript, чтобы открыть всплывающее окноwindow.open, почему IE некоторого пользователя открывает новое окно каждый раз.

window.open("popup.aspx", "myPopup","width=300,height=100,status=no,toolbar=no,menubar=no,scrollbars=no,resizable=no,alwaysLowered=yes,location=no,directories=no,titlebar=no");

Глядя различную документацию она имеет было указано, что если используется такое же имя окна, это окно будет повторно использоваться. Это верно для большинства IE пользователя, но на некоторых ПК конечных пользователей открывается дополнительное всплывающее окно, даже если используется тот же код.

Для проверки этого я создал test.aspx и просто дублировал открытую ранее функцию. На моем ПК у меня появилось одно всплывающее окно, на некоторых пользователей было два. Это определенно Internet Explorer на этом ПК, потому что я установил Firefox и нет проблемы, и на это же окно ссылаются. IE (11) версия такой же все.

Какая проблема?

+0

Не ответ вы будете довольны, но IE славится отклоняясь от HTML стандарты. Ваши пользователи, видящие дубликаты всплывающих окон, скорее всего, будут в более старых версиях IE (то есть, 6 или 7 или ниже). Являются ли эти пользователи в Windows XP? Если это так, они могут легко запускать IE 6, но самая высокая версия IE, которую они могут запускать на XP, - IE 8. – ventaur

+0

Проблема с пользовательскими os - это win7 и IE (11.0.15). Моя окружающая среда такая же, но без проблем. – user3085427

+0

Ну, я предполагаю, что у тех немногих пользователей есть настройка в IE, которых большинство нет. В разделе «Свойства обозревателя»> «Вкладки» есть несколько настроек, которые всегда открываются в новом окне. Вероятно, этот параметр проверен. – ventaur

ответ

0

Сохранить ссылку на объект в открывшемся окне к глобальной переменной и сделать проверку перед вызовом window.open:

var windowObjRef = null; // global variable 

if(windowObjRef== null || windowObjRef.closed) 
{ 
    windowObjRef = window.open("popup.aspx", "myPopup","width=300,height=100,status=no,toolbar=no,menubar=no,scrollbars=no,resizable=no,alwaysLowered=yes,location=no,directories=no,titlebar=no"); 
} 
else 
{ 
    windowObjRef.focus(); 
} 
+0

спасибо, но это всплывающее окно вызвало другие страницы, поэтому переменная set null. Так что новое открытое такое же всплывающее окно. – user3085427

Смежные вопросы