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 }
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вы в ответ на AJAX запрос возвращаете данные? Ну вот и вставьте туда нужный URL, а в скрипте рядом с addon_delview() сделайте window.location.href = d.url;

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

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

Войти через центр авторизации
Похожие вопросы