Задать вопрос
Thomek
@Thomek

Как в рекламном расширении для браузера, сделать редирект?

Подскажите, как в в этом рекламном расширении для браузера после решении капчи сделать редирект?

В этом коде:
<?php
$el_id = 'aHdgsijJ124';
$height = 180; $width = 300;
/*height: <?php echo $height; ?>px;*/
if(!empty($user) && empty($r)){ ?>
	<html>
	<head>
		<title>Реклама</title>
		<meta name="robots" content="noindex,nofollow">
		<meta content="text/html;" charset="UTF-8" http-equiv="Content-Type">
	</head>
	<body>
		<script>
			document.addEventListener('DOMContentLoaded',function(){
			    top.postMessage({<?php echo $el_id; ?>_delview:'1'}, '*');
			});
		</script>
	</body>
	</html>
<?php } else { ?>
<html>
<head>
	<title>Реклама</title>
	<base href="<?php echo PROT."{$_SERVER['SERVER_NAME']}/" ?>" />
	<meta name="robots" content="noindex,nofollow">
	<meta content="text/html;" charset="UTF-8" http-equiv="Content-Type">
	<link rel="stylesheet" type="text/css" href="/assets/css/style_addon.css?id=115" /><!-- почистить -->
	<style>
		body,html{padding:0;margin:0;}
		.main{width: <?php echo $width; ?>px;background: #fff;overflow: hidden;}
		.title{background: #E17F1F;display: table;width: 100%;}
		.btn.btn-rcapt{font-size: 15px;padding: 0 5px;font-weight: bold;letter-spacing: 1px;margin-left: 5px;}
		.btnclose{width: 30px;background: #e03232; color: #fff;}
		.btnclose button{display: block;width: 100%;height: 100%;}
		.gosite{font-size: 12px; color: #47A447;}
	</style>
</head>
<body>
	<?php if(!empty($user)){ 
		$_url = (mb_strlen($r['Url']) > 40) ? (mb_substr($r['Url'], 0, 40).' ...') : $r['Url'];
	?>
	<div class="main" id="addon_main">
		<div class="title">
			<div style="padding: 5px 10px;" id="view_panel_load" class="cell">
				<span id="text_wait">Подождите... &nbsp; <span class="timer"><?php echo $r['Price']; ?></span></span>
				<div style="display: none;" id="capt" title="Решите капчу для вознаграждения!">
					<img style="width: 55px;" src="<?php echo $capt_img; ?>" alt="" /> 
		            <?php foreach($Capt as $val){ 
		                echo "<button type=\"button\" onclick=\"return click_ok('{$val}');\" class=\"btn btn-xs btn-rcapt btn-default\">{$val}</button>";
		            } ?>
				</div>
			</div>
			<div class="cell btnclose"><button type="button" title="Перейти на сайт" class="btn-none" onclick="addon_delview('');">х</button></div>
		</div>
		<div style="padding: 10px 10px 5px 15px;">
			<button type="button" title="Перейти на сайт" class="btn-link" onclick="addon_gosite('<?php echo $r['Url']; ?>');" data-addon_gosite=""><strong><?php echo $r['Title']; ?></strong></button>
			<p style="font-size: 14px;"><?php echo $r['Body']; ?></p>
			<div><button title="Перейти на сайт" type="button" class="btn-link gosite" onclick="addon_gosite('<?php echo $r['Url']; ?>');" data-addon_gosite=""><?php echo $_url; ?></button></div>
		</div>
	</div>
    <script src="/assets/js/jqery.3.4.1.js"></script>
	<script>
		var url = '<?php echo PROT."{$_SERVER['SERVER_NAME']}/earn/addon" ?>';
		function addon_gosite(uri) {
			top.postMessage({<?php echo $el_id; ?>_gosite:uri}, '*');
		}
		function addon_delview(go) {
			let data = new FormData();
            data.append('addonkey', '<?php echo $user['AddonKey']; ?>');
            data.append('delete_view', <?php echo $r['Id']; ?>);
			if(navigator.sendBeacon) 
                navigator.sendBeacon(url, data); 
            else
                $.ajax({contentType: false,processData: false,url:url,type:"POST",data: data});
            var dat = {<?php echo $el_id; ?>_delview:'1'};
            if(go)
            	dat.gosite = go;
			top.postMessage(dat, '*');
		}
		$(document).ready(function(){
			var h = $('#addon_main').height();
			$('#addon_main').attr('style', 'height:'+h+'px');
		    top.postMessage({<?php echo $el_id; ?>_load: h}, '*');		
			var sec = <?php echo $r['Price']; ?>;
			var timer = $('.timer');
	        timerId = setTimeout(
	            function tick() {
	                if((sec+50) < 1){
	                    clearTimeout(timerId);
	                    addon_delview('');
	                }
	                else{
	                    sec--;
		                if(sec > 0){	                	
			                timer.html(sec);
		                }
		                else if(sec === 0){
		                    $('#text_wait').hide();
		                    $('#capt').show();
		                }
	                    timerId = setTimeout(tick, 1000);
		            }
	            }, 1000
	        );
	        <?php /**Здесь можно вставить код метрики**/ ?>
		});
	    function click_ok(c){
	        $('#capt').html('Подождите ...');
	        $.ajax({
	            url: url,
	            dataType: 'json',
	            type: "POST",
	            data: {click_ok:<?php echo $r['Id']; ?>,captcha:c,addonkey:'<?php echo $user['AddonKey']; ?>'},
	            success: function(d){
	                var t = parseInt(d.status);
	                if(t > 0){
	                    $('#view_panel_load').html('<strong>Просмотр засчитан!</strong>');
	                    $('#view_panel_load').addClass('text-success');
	                    var timerId = setTimeout(
	                        function () {
	                            addon_delview('');
	                        }
	                        , 3000
	                    );
	                }
	                else{
	                    $('#view_panel_load').html('<strong>'+d.mess+'</strong>');
	                    //$('#view_panel_load').addClass('text-danger');
	                    var timerId = setTimeout(
	                        function () {   
	                            addon_delview('');
	                        
	                        }
	                        , 3000
	                    );
	                }
	            },
	            error: function(){
					$('#view_panel_load').html('<strong>Неизвестная ошибка</strong>');
                    //$('#view_panel_load').addClass('text-danger');
                    var timerId = setTimeout(function () { addon_delview(''); }, 3000);
                }
	        });
	        return true;
	    }
	</script>
	<?php } else { ?>
	<div style="width: 300px;height: 150px;background: #fff;overflow: hidden;">
		<div style="background: #b2ceec;display: table;width: 100%;">
			<div style="padding: 5px 10px;" class="cell">Ошибка авторизации</div>
			<div style="width: 30px;background: #e03232; color: #fff;" class="cell"><button style="display: block;width: 100%;height: 100%;" class="btn-none" onclick="addon_delview('');">х</button></div>
		</div>
		<div style="padding: 10px;">
			<p><strong>Вы не авторизированы на сайте!</strong></p>
			<p style="font-size: 14px;">Откройте окно расширения, и выполните вход, что бы начать зарабатывать.</p>
		</div>
	</div>
	<script>
		function addon_delview('') {
			top.postMessage({<?php echo $el_id; ?>_delview:'1'}, '*');
		}
		document.addEventListener('DOMContentLoaded',function(){
		    top.postMessage({<?php echo $el_id; ?>_load:'1'}, '*');
		});
	</script>
	<?php } ?>
</body>
</html>
<?php }
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вы в ответ на AJAX запрос возвращаете данные? Ну вот и вставьте туда нужный URL, а в скрипте рядом с addon_delview() сделайте window.location.href = d.url;

P.S. Видимо код написан не вами, раз такое наиэлементарнейшее действие тут спрашиваете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽