Jquery mobile 使用JQuery mobile在手机网站上点击成人广告
我在使用Exoclick成人广告在使用JQuery UI的移动网站上做广告时遇到了一个问题 我不知道我能在这里透露多少,直到它太过“成人”了,我不能在这里发布了 Exoclick横幅显示,但仅显示一次!在站点内导航不会再次出现相同的广告(我们有两个广告,底部和顶部。每个广告每次站点遍历只加载一次)。如果使用浏览器的刷新功能(“F5”)进行刷新,它们将再次加载。。。但只有一次 好的,Exoclick给了我这样一个片段:Jquery mobile 使用JQuery mobile在手机网站上点击成人广告,jquery-mobile,ads,Jquery Mobile,Ads,我在使用Exoclick成人广告在使用JQuery UI的移动网站上做广告时遇到了一个问题 我不知道我能在这里透露多少,直到它太过“成人”了,我不能在这里发布了 Exoclick横幅显示,但仅显示一次!在站点内导航不会再次出现相同的广告(我们有两个广告,底部和顶部。每个广告每次站点遍历只加载一次)。如果使用浏览器的刷新功能(“F5”)进行刷新,它们将再次加载。。。但只有一次 好的,Exoclick给了我这样一个片段: <!-- BEGIN ExoClick.com Ad Code --&g
<!-- BEGIN ExoClick.com Ad Code -->
<script type="text/javascript" src="http://syndication.exoclick.com/ads.php?type=300x50&login=<username>&cat=110&search=&ad_title_color=0000cc&bgcolor=FFFFFF&border=0&border_color=000000&font=&block_keywords=&ad_text_color=000000&ad_durl_color=008000&adult=0&sub=&text_only=0&show_thumb=&idzone=<zone id>&idsite=<site id>"></script>
<noscript>Your browser does not support JavaScript. Update it for a better user experience.</noscript>
<!-- END ExoClick.com Ad Code --></div>
您的浏览器不支持JavaScript。更新它以获得更好的用户体验。
问题是,这在静态站点上非常有效,但由于JQuery Mobile使用AJAX获取所有内容的特性,脚本将多次加载到浏览器的执行上下文中(至少我认为会发生这种情况!),最后。。。甚至不再执行了
我已经想到了:
- 缓存Exoclick广告脚本的输出(JS是否有类似“outputcache”的内容?)
- 停用Ajax
<script>
$(document).bind("mobileinit", function(){
$.mobile.ajaxEnabled = false;
});
</script>
$(document).bind(“mobileinit”,function(){
$.mobile.ajaxEnabled=false;
});
禁用Ajax应该可以:
$(document).bind("mobileinit", function () {
$.mobile.addBackBtn = false;
$.mobile.ajaxEnabled = false;
$.mobile.ajaxLinksEnabled = false;
});
另一方面,您可以在每次ajax成功时刷新/重新加载脚本
$('html').ajaxSuccess(function() {
//reload your script using js, plenty of that on google
});
停用Ajax应该可以:
$(document).bind("mobileinit", function () {
$.mobile.addBackBtn = false;
$.mobile.ajaxEnabled = false;
$.mobile.ajaxLinksEnabled = false;
});
另一方面,您可以在每次ajax成功时刷新/重新加载脚本
$('html').ajaxSuccess(function() {
//reload your script using js, plenty of that on google
});
我做到了@博贝克间接地给了我这个答案 我所做的是创建一个不可见的div,它首先包含广告。然后,在pageinit上,我窃取div并将其从DOM中删除。div内部现在将有一个由Exoclick生成的iframe 然后,在没有exoclick脚本的情况下,我在每个页面init事件中将其插入到dom中 为了防止脚本被插入到dom中,我在服务器端检查X-REQUESTED-WITH头。如果是XMLHttpQuest,我不会发送广告 这是它在代码中的外观: 网站上任何地方的临时广告投放:
<div id="ads">
<div style="display: none" id="topad">
<?php require("./_topbannerb.php"); ?>
</div>
<div style="display: none" id="bottomad">
<?php require("./_bottombannerb.php"); ?>
</div>
</div>
这两个PHP文件通过单击包含标记。没有别的了
head标记中的脚本:
<script>
ads = "";
first = true;
$(document).bind('pageinit', function() {
if (first) {
ads = $("#ads");
ads.remove();
}
first = false;
$.each($(".adt"), function(i, v) {
$(v).append($(ads).children("#topad").first().children("div").clone())
});
$.each($(".adb"), function(i, v) {
$(v).append($(ads).children("#bottomad").first().children("div").clone())
});
});
</script>
ads=“”;
第一个=正确;
$(document).bind('pageinit',function(){
如果(第一){
ads=$(“#ads”);
ads.remove();
}
第一个=假;
$。每个($(“.adt”),函数(i,v){
$(v).append($(ads).children(#topad”).first().children(“div”).clone())
});
$。每个($(“.adb”),函数(i,v){
$(v).append($(ads).children(“#bottomad”).first().children(“div”).clone())
});
});
然后,广告最后应该放在哪里:
<div class="adt"> </div>
脚本会自动插入每个广告位置。这里我有两个不同的广告区域:顶部和底部。除了exoclick在后面处理它们的方式外,两者没有区别。我做到了@博贝克间接地给了我这个答案 我所做的是创建一个不可见的div,它首先包含广告。然后,在pageinit上,我窃取div并将其从DOM中删除。div内部现在将有一个由Exoclick生成的iframe 然后,在没有exoclick脚本的情况下,我在每个页面init事件中将其插入到dom中 为了防止脚本被插入到dom中,我在服务器端检查X-REQUESTED-WITH头。如果是XMLHttpQuest,我不会发送广告 这是它在代码中的外观: 网站上任何地方的临时广告投放:
<div id="ads">
<div style="display: none" id="topad">
<?php require("./_topbannerb.php"); ?>
</div>
<div style="display: none" id="bottomad">
<?php require("./_bottombannerb.php"); ?>
</div>
</div>
这两个PHP文件通过单击包含标记。没有别的了
head标记中的脚本:
<script>
ads = "";
first = true;
$(document).bind('pageinit', function() {
if (first) {
ads = $("#ads");
ads.remove();
}
first = false;
$.each($(".adt"), function(i, v) {
$(v).append($(ads).children("#topad").first().children("div").clone())
});
$.each($(".adb"), function(i, v) {
$(v).append($(ads).children("#bottomad").first().children("div").clone())
});
});
</script>
ads=“”;
第一个=正确;
$(document).bind('pageinit',function(){
如果(第一){
ads=$(“#ads”);
ads.remove();
}
第一个=假;
$。每个($(“.adt”),函数(i,v){
$(v).append($(ads).children(#topad”).first().children(“div”).clone())
});
$。每个($(“.adb”),函数(i,v){
$(v).append($(ads).children(“#bottomad”).first().children(“div”).clone())
});
});
然后,广告最后应该放在哪里:
<div class="adt"> </div>
脚本会自动插入每个广告位置。这里我有两个不同的广告区域:顶部和底部。除了exoclick在后面处理它们的方式外,两者没有区别。ajax请求使用的URL上是否有任何破坏缓存的查询参数?e、 附加系统时间,以便每次都能得到一个“新”url?不,后台的PHP没有附加任何内容。服务器端也没有缓存!不是php,是执行ajax请求的jquery。@MarcB正如我所说,没有任何附加内容,不是由php(字符串连接,heh)或Javascript/jquery附加的。是否有任何缓存破坏查询参数附加到ajax请求使用的URL上?e、 附加系统时间,以便每次都能得到一个“新”url?不,后台的PHP没有附加任何内容。服务器端也没有缓存!不是php,是执行ajax请求的jquery。@MarcB正如我所说,没有任何附加内容,不是php(字符串连接,呵呵)或Javascript/JqueryI提供了更多信息。。。问题是document.write调用永远不会在ajax加载的页面中处理。。。所以我所做的就是用广告制作一个隐藏的div并复制它。。但是这个隐藏的div:我到底该把它放在哪里,或者我该怎么处理它才能不被重新加载呢我得到了更多关于这件事的真相。。。问题是document.write调用永远不会在ajax加载的页面中处理。。。所以我所做的就是用广告制作一个隐藏的div并复制它。。但是这个隐藏的div:我到底该把它放在哪里,或者我该怎么处理它才能不被重新加载呢D