Всплывающие окна
Здравствуйте, ребята!
Есть такой скрип на сайте: <script> var newWin = window.open('$url', 'JSSite', 'width=880,height=550,resizable=yes,scrollbars=yes,status=yes') newWin.focus() </script> Он открывает новое окно определенного размера, без него не как увы не обойтись, проблема в том, что браузер требует пользователя разрешения на открывания таких окон и как я заметил, не все пользователи видят это разрешение и получается, что окно не открывается и все летит к чертям.., пользователь думает, что сайт тупит (потому что после нажатия нечего не происходит), а на самом деле он не дал разрешения на это.. Вопрос: можно ли как-то обойти это? Ну то есть как-то автоматически ставить разрешения на открывания таких окон или сделать так, что разрешения вообще не требовалось... буду очень благодарен! Спасибо! |
Цитата:
Цитата:
<button id="button">Открыть окно</button> <script> button.onclick = function() { var newWin = window.open('$url', 'JSSite', 'width=880,height=550,resizable=yes,scrollbars=yes,status=yes'); newWin.focus(); }; </script> |
Цитата:
Да, осознаю... затупил я. Ваш вариант прекрасно работает (я его протестировал на отдельной странице у себя на сайте), но проблема в том, что у меня должно происходить все на ajaxe, то бишь человек нажимает на кнопку, php достает рандомный $url, а дальше как сделать перенаправление такого вида? Я делал так (понимаю, что это по нубски но все же): <?php echo "<script> var newWin = window.open('$url', 'JSSite', 'width=880,height=550,resizable=yes,scrollbars=yes ,status=yes'); newWin.focus(); </script>"; ?> То есть с php я вставлял скрипт в любой блок на сайте и получалось перенаправление с нужным параметром. |
Вот так все у меня выглядит:
html: <input id='like_put' type='submit' value='Случайный сайт'> <br><div class='error_reg_box'></div> js: $(function(){ $('#information').on('click', '#like_put', function () { $.ajax({ type: "POST", url: "handlers/like_put", cache: false, success: function(response){ var messageResp = new Array('Ошибка, попробуйте перезайти на сайт..'); var resultStat = messageResp[Number(response)]; if(response == 0){ $(".error_reg_box").text(resultStat).show().delay(3500).slideToggle(1000); } else{ $(".error_reg_box").html(response); } } }); return false; }); }); php: <?php // Проверки разные... // Если ошибки, то выводим "echo 1;" или другие ошибки... // Потом достаем из БД рандомную запись, допустим: $url = 'http://javascript.ru'; echo "<script> var newWin = window.open('$url', 'JSSite', 'width=880,height=550,resizable=yes,scrollbars=yes,status=yes'); newWin.focus(); </script>"; exit(); } ?> |
Попробовал даже перенаправить на конкретную страницу, все-равно запрос повляется:
(прописал его в js файле). var newWin = window.open('http://google.ru', 'JSSite', 'width=880,height=550,resizable=yes,scrollbars=yes ,status=yes'); newWin.focus(); |
Браузер блокирует окна, открываемые скриптом без действия пользователя. Открывай окно сразу по клику (выведи там чета типа "Загрузка", а по получению ответа от сервера - меняй его window.location
|
Цитата:
|
Цитата:
|
<button id="button" disabled="">Открыть окно</button> <script> (function(){ var url; button.onclick = function() { var newWin = window.open(url, 'JSSite', 'width=880,height=550,resizable=yes,scrollbars=yes,status=yes'); newWin.focus(); }; // имитируем xhr запрос. setTimeout(function(){ url = 'https://google.com'; button.disabled = false; }, 2000); })() </script> |
Часовой пояс GMT +3, время: 07:35. |