我们正在创建一个基于网络的移动应用。该应用的广告加载在一个狭窄的框架中。在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>
感谢。
答案 0 :(得分:0)
从您的代码中,广告看起来就像是在同一个域中?如果是这种情况,那么向该框架中的所有标签注入target="_blank"
可能是最简单的。
使用jQuery(你在你的例子中包含,所以我假设可以使用),这应该这样做:
$(adframe.document.body).find('a').attr('target', '_blank');