Как проверить, изменился ли источник фрейма и открыть источник в новом окне - PullRequest
0 голосов
/ 30 августа 2011

Мы создаем мобильное веб-приложение.В приложении есть реклама, которая загружается в узкую рамку.При тестировании на iPhone мы заметили, что при нажатии на объявление оно загружается в рамку объявления (нативного приложения), а не открывается в новом окне.

Теперь мы пытаемся определить,объявление кликнуло, проверив источник фрейма.Если источник изменился, мы бы хотели получить этот URL и открыть его в новом окне, используя Javascript.Затем мы хотели бы восстановить исходный кадр.

Вот код, который у нас есть.

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js'></script>

<script>
$(document).ready(function() {
    setTimeout( checkAdLocation, 250 );
});

function checkAdLocation() {
    var adLocation = window.frames['adframe'].document.location;
    if(adLocation!='http://path/play.php?showad') {
        window.frames['adframe'].document.location.href = 'play.php?showad';
        window.open( adLocation );
    }
    alert( adLocation);
    setTimeout( checkAdLocation, 2000 );
}

</script>

<frameset cols='50%,50%'>
   <frame src='play.php?showad' name=adframe>
   <frame src='http://google.com'>
</frameset> 

Спасибо.

1 Ответ

0 голосов
/ 30 августа 2011

Из вашего кода похоже, что реклама живет в одном домене?Если это так, то, вероятно, проще всего внедрить target="_blank" для всех тегов в этом фрейме.

Используя jQuery (который вы включили в ваш пример, поэтому я предполагаю, что это нормально), это должно сделать это:

    $(adframe.document.body).find('a').attr('target', '_blank');
...