Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2020, 23:41
Кандидат Javascript-наук
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 145

Как при попадании на сайт открыть пользователю сразу 5 окон (5 URL's)?
Есть сайт-страница https://redmap.site/index32.html , при заходе на которую - юзера должно редиректить через 5 секунд на сайт https://google.com .

Во время этих 5 секунд - должны открываться в отдельном (маленьком) окне 5 сайтов , вот по этим юрлам:
https://alpha.com
https://betta.com
https://gamma.com
https://delta.com
https://lambda.com


и должны все эти 5 окон закрываться через 1 секунду.

На данный момент как и нужно - срабатывает через 5 секунд редирект на страницу гугла, и во время этих 5 секунд происходит открытие самого верхнего юрла и закрытие его через 1 секунду. Только этот (самый верхний) url открывается сейчас:

https://alpha.com


Почему не открываются другие юрлы по принципу, открылись на 1 секунду и закрылись?

Код страницы: index1.html
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title>redmap.site</title>
  <!--[if IE]>
   <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
  <style>
   article, aside, details, figcaption, figure, footer,header,
   hgroup, menu, nav, section { display: block; }
  </style>

<script type="text/javascript">




partner_window1_alpha = window.open("https://alpha.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=5000,left=5000,width=100,height=100");
setTimeout(function() {
  partner_window1_alpha.close();
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window1_alpha.close();
}, 1000);


partner_window2_betta = window.open("https://betta.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=1000,left=1000,width=100,height=100");
setTimeout(function() {
  partner_window2_betta.close();
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window2_betta.close();
}, 5000);


partner_window3_gamma = window.open("https://gamma.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=5000,left=5000,width=100,height=100");
setTimeout(function() {
  partner_window3_gamma.close();
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window3_gamma.close();
}, 1000);


partner_window4_delta = window.open("https://delta.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=5000,left=5000,width=100,height=100");
setTimeout(function() {
  partner_window4_delta.close();
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window4_delta.close();
}, 1000);




partner_window5_lambda = window.open("https://lambda.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=5000,left=5000,width=100,height=100");
setTimeout(function() {
  partner_window5_lambda.close();
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window5_lambda.close();
}, 1000);

 


setTimeout(function() {
  location.href = 'https://www.google.com';
}, 5000);
</script>

 
 </head>
 <body>
  <p>Hello world </p>
 </body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2020, 09:39
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

partner_window1_alpha = window.open("https://alpha.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resiz able=no,scrollbars=no,top=5000,left=5000,width=100 ,height=100");

У всех открывающихся окон должны быть разные имена. Иначе все будет открываться в одном окне.

setTimeout(function() {
partner_window1_alpha.close();
location.href = 'https://www.google.com';
}, 5000);

Зачем это дублировать?
Если окно будет закрыто через 1 сек, то зачем снова пытаться закрыть через 5 сек?
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2020, 12:05
Кандидат Javascript-наук
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 145

Исправил код, удалив лишние попытки закрытия. Работает хорошо, но есть проблема что браузер блокирует всплывающие окна. Читал, что чтоб браузер не блокировал, но нужно выполнять ajax-запрос в синхронном режиме (async:false) тогда браузер это будет считать одним потоком, и не будет блокировать:

на jquery это выглядит приблизительно так:



$.ajax({
  type: 'POST',
  async: false,
  url: '/path/to',
  data: { a: b, c: d },
  success: function(response) {
    window.open('url', '_blank');
  }
});



Как это решение интегрировать с моим кодом, не могу понять в какую сторону копать? Вот мой код:
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title>redmap.site</title>
  <!--[if IE]>
   <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
  <style>
   article, aside, details, figcaption, figure, footer,header,
   hgroup, menu, nav, section { display: block; }
  </style>

<script type="text/javascript">


partner_window1_alpha = window.open("https://alpha.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=5000,left=5000,width=100,height=100");
setTimeout(function() {
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window1_alpha.close();
}, 1000);


partner_window2_betta = window.open("https://betta.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=1000,left=1000,width=100,height=100");
setTimeout(function() {
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window2_betta.close();
}, 5000);


partner_window3_gamma = window.open("https://gamma.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=5000,left=5000,width=100,height=100");
setTimeout(function() {
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window3_gamma.close();
}, 1000);


partner_window4_delta = window.open("https://delta.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=5000,left=5000,width=100,height=100");
setTimeout(function() {
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window4_delta.close();
}, 1000);




partner_window5_lambda = window.open("https://lambda.com", "partner", "menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=no,top=5000,left=5000,width=100,height=100");
setTimeout(function() {
  location.href = 'https://www.google.com';
}, 5000);


setTimeout(function() {
  partner_window5_lambda.close();
}, 1000);

 


setTimeout(function() {
  location.href = 'https://www.google.com';
}, 5000);
</script>

 
 </head>
 <body>
  <p>Hello world </p>
 </body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2020, 14:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от mik888em
Читал, что чтоб браузер не блокировал
Слава богу, что у пользователя есть такое право - заносить сразу в черный список такие сайты.
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2020, 14:22
Кандидат Javascript-наук
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 145

Если пользователю необходимо, то он может так же и разрешить.
Ответить с цитированием
  #6 (permalink)  
Старый 06.07.2020, 14:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от mik888em
то он может так же и разрешить
То есть вы считаете, что порнопарад из кучи окон, это то, что желают пользователи? Их браузер блокирует как раз и по этой причине - они раздражают. Кроме этого, такие окна не имеют статуса "поверх всех окон" и легко теряются.
Ответить с цитированием
  #7 (permalink)  
Старый 06.07.2020, 14:43
Кандидат Javascript-наук
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 145

с чего вы решили что данный, цитата"порнопарад из кучи окон" для пользователей которые не будут в курсе этого, я не указывал в теме для кого предназначается этот код.
Если коротко, то код для меня, хочу проверить баны в поиске, но это уже оффтоп.
Ответить с цитированием
  #8 (permalink)  
Старый 06.07.2020, 14:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если для себя, зачем же так варварски, сделайте это в Iframe, так ведь удобнее и полная гарантия, что окно не пропадет.
Ответить с цитированием
  #9 (permalink)  
Старый 06.07.2020, 15:23
Кандидат Javascript-наук
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 145

мне необходимо чтобы куки открывающегося в окне сайта - сохранялись в браузере. Насколько я знаю, то при открытии url какого либо сайта во фрейме не происходит сохранение куков это сайта в браузере.
Ответить с цитированием
  #10 (permalink)  
Старый 06.07.2020, 15:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вы же для себя делаете следовательно вполне можете решить все проблемы, ведь и решение этой проблемы также имеется в сети. Гугл в помощь и сразу
https://habr.com/ru/post/112077/
.....
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необъяснимое поведение прокрутки при использовании homekey demoniqus Events/DOM/Window 2 26.08.2019 10:05
Как при нажатии на лайк прибавить еденицу, при нажатии на диз отнять? ekad Элементы интерфейса 1 16.08.2019 12:46
как сделать что бы при открытии страницы сразу открылось большое фото oksanaweb Общие вопросы Javascript 1 05.06.2013 02:17
Как открыть модальное окно сразу при загрузке страницы dgabets jQuery 3 13.02.2012 21:03
Открытие сразу нескольких див-ов при нажатии на ссылку. Как? Jameson Элементы интерфейса 4 15.02.2010 22:03