Блокировщик всплывающих окон Internet Explorer, если установлен уровень фильтра Medium
, не будет блокировать окна, открытые JavaScript, если они были инициированы действием пользователя. В IE 6, 7 и 8 отлично работает следующее:
<script type="text/javascript">
function openWin() {
var width = 800;
var height = 600;
var left = Math.floor((screen.availWidth - width) / 2);
var top = Math.floor((screen.availHeight - height) / 2);
var windowFeatures = "width=" + width + ",height=" + height +
",menubar=yes,toolbar=yes,scrollbars=yes,resizable=yes," +
"left=" + left + ",top=" + top +
"screenX=" + left + ",screenY=" + top;
child1 = window.open("about:blank", "subWind", windowFeatures);
writeTo(child1);
}
function writeTo(w) {
w.document.write('Test');
}
</script>
<a href="#" onclick="openWin();return false;">Test</a>
Обратите внимание, что использование document.write
во вновь открытом окне не работает в некоторых веб-браузерах. Также обратите внимание, что это может вызвать блокировку всплывающих окон в других браузерах, даже если она работает, как показано в Internet Explorer.
Я видел, где вызов JavaScript из события onclick
может в некоторых случаях вызывать срабатывание блокировщика всплывающих окон. Кажется, что-то связано с тем, как far window.open()
от события onclick. Слишком много уровней функций, вызывающих функции, прежде чем вызывать window.open()
. Не видя вашей точной реализации, я не могу сказать вам, является ли это вашей проблемой или нет.