Как при попадании на сайт открыть пользователю сразу 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> |
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 сек? |
Исправил код, удалив лишние попытки закрытия. Работает хорошо, но есть проблема что браузер блокирует всплывающие окна. Читал, что чтоб браузер не блокировал, но нужно выполнять 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> |
Цитата:
|
Если пользователю необходимо, то он может так же и разрешить.
|
Цитата:
|
с чего вы решили что данный, цитата"порнопарад из кучи окон" для пользователей которые не будут в курсе этого, я не указывал в теме для кого предназначается этот код.
Если коротко, то код для меня, хочу проверить баны в поиске, но это уже оффтоп. |
Если для себя, зачем же так варварски, сделайте это в Iframe, так ведь удобнее и полная гарантия, что окно не пропадет.
|
мне необходимо чтобы куки открывающегося в окне сайта - сохранялись в браузере. Насколько я знаю, то при открытии url какого либо сайта во фрейме не происходит сохранение куков это сайта в браузере.
|
Вы же для себя делаете следовательно вполне можете решить все проблемы, ведь и решение этой проблемы также имеется в сети. Гугл в помощь и сразу
https://habr.com/ru/post/112077/ ..... |
Интересная идея, тогда должны открываться во фрейме эти 5 сайтов и передаваться с них куки в мой браузер
https://alpha.com https://betta.com https://gamma.com https://lambda.com https://delta.com а так же после открытия этих сайтов во фрейме и присваивание куков, должен происходить редирект на https://google.com Я использовал второй способ из предложенного вами метода по ссылке с хабра https://habr.com/ru/post/112077/ Но где-то допустил ошибку в коде. Суть метода: в iframe создаётся форма, action которой ведёт на нужную страницу текущего домена форма отправляется посредством JavaScript И этот метод работает: скрипт, расположенный по адресу action'а формы(и последующие вызываемые скрипты), успешно установит cookies. При этом не имеет значения тот факт, будет ли отправлена форма методом GET или POST. Пример реализации с использованием jQuery: <script type="text/javascript"> $(function(){ $('body').append('<form id="cookiesHackForm" action="http://example.com/" method="get"></form>'); $('#cookiesHackForm').submit(); }); </script> Достоинства: + не требует действий от пользователя Недостатки: — требуется JavaScript — требуется пустая страница только лишь для редиректа <!DOCTYPE html> <html> <head> <meta name="robots" content="noindex"> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-V51JXCRKXR"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-V51JXCRKXR'); </script> <meta charset="utf-8" /> <title>redmap.site</title> <!--[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <style> .clesidra_img { height: 900px; position: relative; } .clesidra_img img { position: absolute; margin: auto; left: 0; top: 0; bottom: 0; right: 0; } </style> <script type="text/javascript"> $(function(){ $('body').append('<form id="cookiesHackForm" action="https://google.com" method="get"></form>'); $('#cookiesHackForm').submit(); }); </script> <script type="text/javascript"> </script> </head> <body bgcolor="#D4D3D3" background="clesidra.jpg"> <p> </p> <iframe src="https://alpha.com" width="600" height="500" frameborder="0"></iframe> <iframe src="https://betta.com" width="600" height="500" frameborder="0"></iframe> <iframe src="https://gamma.com" width="600" height="500" frameborder="0"></iframe> <iframe src="https://lambda.com" width="600" height="500" frameborder="0"></iframe> <iframe src="https://delta.com" width="600" height="500" frameborder="0"></iframe> <div class="clesidra_img"> <img src="data:image/gif;base64,R0lGODlh.......СОКРАТИЛ ТУТ ВЕСЬ КОД BASE64 ИЗОБРАЖЕНИЯ КОТОРОЕ ОТОБРАЖАЕТСЯ НА СТРАНИЦЕ ДОМЕНА ДО РЕДИРЕКТА НА google.com : ) .......TlJWflWAAA7" width="550" height="343" alt="base64 test"> </div> </body> </html> |
Я не могу понять, если вы делаете некий инструмент для себя, то почему не поступить проще - разрешить прием кук в настройках браузера или использовать браузер, в котором они по умолчанию разрешены, Firefox?
|
если нужно было бы сделать для кого то, ото заказал бы у фрилансеров. А делаю для себя, тк это академический вопрос -мне интересно как это работает,поэтому и задрачиваюсь сам во всем разбираюсь))) сорри за оффтоп
|
Цитата:
|
Часовой пояс GMT +3, время: 02:22. |