Как при попадании на сайт открыть пользователю сразу 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, время: 12:28. |