2014-11-18 2 views
0

На десятках других систем это работает просто отлично. Но в одной конкретной системе, запускающей IE11, перед закрытием окна отображается запрос подтверждения. Другие системы, работающие с IE11, не демонстрируют такого поведения.IE побуждает закрыть всплывающее окно, которое я создал

Есть ли какие-то настройки в IE, которые могут вызвать это? Или что еще я могу найти, что вызывает это на этой конкретной системе?

Когда пользователь нажимает на ссылку в новом окне открывается с помощью ...

$("a#offer").click(function (e) { 
    e.preventDefault(); 
    var popUp = window.open("http://...", "thePopUp", "resizable=yes,height=" + (screen.availHeight-45) + ",width=760,left=" + ((screen.availWidth/2)-380) + ",menubar=no,scrollbars=yes,toolbar=no"); 
    popUp.focus(); 
}); 

Затем в новом окне, при нажатии кнопки окно закрывается:

$("#submit").click(function() { 
    //...some sync ajax calls 
    window.close(); 
}); 

enter image description here

+0

Проверьте уровни безопасности с этого компьютера и сравните их с другими. – Justinas

+0

Если страница не с того же сайта, что и скрипт, который ее открыл, это правильная процедура, чтобы выслать вам запрос первым. Кроме того, если что-либо с 'id =" submit "является фактической кнопкой отправки, вы хотите использовать ее. («form»). on («submit», function (e) {e.preventDefault(); ... window.close();}) ' – mplungjan

+0

@mplungjan Да, это был URL другого домена. http://theinside.example.com vs http://inside.example.com Не имеет смысла, почему это не проблема на других рабочих станциях. Большое спасибо! –

ответ

1

Если страница не с того же сайта, что и сценарий, который открыл его, это правильная процедура подсказывать вам первый.

В вашем случае DOMAIN такая же, так что вы можете установить document.domain к «example.com» в обеих страницах и IE11 может быть счастливым, но смотрите это тоже:

"Access is denied" JavaScript error when trying to access the document object of a programmatically-created <iframe> (IE-only)

Также если что-либо с id = "submit" является фактической кнопкой отправки, вы также хотите отменить подачу с помощью

$("form").on("submit",function(e) { 
    e.preventDefault(); 
    ... 
    window.close(); 
}); 
-1

Я не уверен, как он работает в других системах, однако это должно быть правильным способом.

Вы должны передать ссылочный объект открытого окна в функцию close.

$("#submit").click(function() { 
    //...some sync ajax calls 
    popUp.close(); 
}); 

Смотреть это: MDN

+0

закрыть сам window.close() будет работать – mplungjan

+0

yes .. Он будет работать, но он закроет текущее окно. Что делать, если мне нужно закрыть конкретное окно. –

+0

Тогда вы должны получить ручку, но это не вопрос. Чтобы получить дескриптор из другого места (то же самое происхождение), вы можете снова вызвать open с именем: 'window.open (" "," windowName "). Close()' или 'var popup = window.open (" "," windowName «); popup.close() ' – mplungjan

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