Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Всплывающие окна (https://javascript.ru/forum/misc/15480-vsplyvayushhie-okna.html)

Golovastik 28.02.2011 23:55

Всплывающие окна
 
Написал простой код, возщмутило,то что и ГУГЛХРОМ И Мозила идр. браузеры, блокируют это. Как средствам JAVASCRIPT запретить блокирование браузером этого кода?
Просто что делать, если например много таких окон нужно будет на сайте, например при нажатии на кнопке создавать, их все не увидит пользователь, постоянно прийдётся ему отключать через настройки браузера?

Код:

<script type="text/javascript">
var t = window.open("","Новое окно","width=400,height=300");
t.document.write("Вывод информации в новое окно");
</script>


dmitriymar 01.03.2011 00:27

Ну а многих возмущала РорUp реклама -поэтому и блокируются браузерами всплывающие окна.
что мешает сделать всплывающий контейнер?

Aetae 01.03.2011 00:53

Фишка в том, что как раз навешанное на кнопку/ссылку это сработает, а вот просто так - нет.
<!DOCTYPE HTML>
<html>
<body>   
  <script type="text/javascript">
  function popup(el){
    var t = window.open('','Новое окно','width=400,height=300').document;
    t.open();
    t.write(el);
    t.close()
  }
  popup('само просто так')
  </script>
  <input type="button" value="click" onclick="popup('кнопка')">
  <br>
  <a href="#nojs"  onclick="popup('сыылка');return false">click</a>
</body>
</html>


Так что если вы не злобный рекламщик и хотите именно того, о чём написали - нет проблем.)

Golovastik 01.03.2011 01:21

Да, это хорошо, спасибо, но как-то странно,код вроде и делает то, что я хотел, только уведомляет вдобавок что окно всплывающее было заблокировано. Вот фото.


а)Скажите, а что такое return false? Я имею ввиду зачем оно?
б)window.open('','Новое окно','width=400,height=300').document;
А разве можно через объект опен вызвать объект документ?
Что этот вызов будет означать?

Aetae 01.03.2011 01:32

Смотрите код внимательнее. В выделенном месте я один раз пытаюсь открыть окно просто так, чтоб показать, что по-старому всё ещё не работает.
<!DOCTYPE HTML>
<html>
<body>   
  <script type="text/javascript">
  function popup(el){
    var t = window.open('','Новое окно','width=400,height=300').document;
    t.open();
    t.write(el);
    t.close()
  }
  *!*popup('само просто так')*/!*
  </script>
  <input type="button" value="click" onclick="popup('кнопка')">
  <br>
  <a href="#nojs"  onclick="popup('сыылка');return false">click</a>
</body>
</html>


И не смотрите что сам код вызова окна немного отличается от вашего, просто у вас опущено открытие и закрытие записываемого документа, что не есть хорошо.

phoenix200689 02.11.2016 13:16

Как закрыть всплывающее окно в IE9+?
 
Всем привет.
Как закрыть окно в IE9+

function someFunction(someUrl) {
var wnd = window.open(url,"","width=150,height=150");
setTimeout(function() {wnd.close()}, 500);
}

В Chrome это работает, а в IE 11 окно не закрывается.

Dilettante_Pro 02.11.2016 13:39

phoenix200689
У меня и в Chrome и в IE11 и IE9 одинаково открывается-закрывается ( правда, IE9 реально нету - IE11 в режиме эмуляции 9)
<script>
function someFunction(url) { 
var wnd = window.open(url,"","width=150,height=150"); 
setTimeout(function() {wnd.close()}, 500); 
}
</script>
<button onclick='someFunction("")'>Открыть окно</button>


Часовой пояс GMT +3, время: 16:05.