Javascript 實(shí)現(xiàn)廣告后加載 可加載百度谷歌聯(lián)盟廣告 原創(chuàng)
本文主要介紹一種新的廣告后加載的方式,支持自定義HTML廣告、百度聯(lián)盟廣告和谷歌聯(lián)盟廣告。這種方式在頁面加載完成后執(zhí)行,不影響內(nèi)容的顯示,對(duì)用戶更加友好。
我們?cè)诰W(wǎng)站上放置廣告,最簡(jiǎn)單的方法就是把JS代碼,插入指定的位置,這樣帶了后果就是,頁面按照順序加載,偶爾一條廣告代碼卡住,整個(gè)頁面都會(huì)卡住,給用戶帶來的體驗(yàn)是極差的。
那么怎么解決這種問題呢?先說一下原理,在我們的頁面上先預(yù)留一些占位符,為了不影響頁面內(nèi)容的加載,我們?cè)陧撁娴牡撞恳隞S處理,逐個(gè)把占位符替換成相應(yīng)的廣告。
下面我們看具體的實(shí)現(xiàn)步驟:
一、在頁面上放置占位符,其實(shí)就是一個(gè)span標(biāo)記
<span id="ads_one" class="jbTestPos"></span>
<span id="ads_two" class="jbTestPos"></span>
<span id="ads_three" class="jbTestPos"></span>
二、編寫?yīng)毩⒌腏S腳本代碼:jbLoader.js
jbMap = window.jbMap || {};
function jbViaJs(locationId) {
var _f = undefined;
var _fconv = 'jbMap[\"' + locationId + '\"]';
try {
_f = eval(_fconv);
if (_f != undefined) {
_f()
}
} catch(e) {}
}
function jbLoader(closetag) {
var jbTest = null,
jbTestPos = document.getElementsByTagName("span");
for (var i = 0; i < jbTestPos.length; i++) {
if (jbTestPos[i].className == "jbTestPos") {
jbTest = jbTestPos[i];
break
}
}
if (jbTest == null) return;
if (!closetag) {
document.write("<span id=jbTestPos_" + jbTest.id + " style=display:none>");
jbViaJs(jbTest.id);
return
}
document.write("</span>");
var real = document.getElementById("jbTestPos_" + jbTest.id);
for (var i = 0; i < real.childNodes.length; i++) {
var node = real.childNodes[i];
if (node.tagName == "SCRIPT" && /closetag/.test(node.className)) continue;
jbTest.parentNode.insertBefore(node, jbTest);
i--
}
jbTest.parentNode.removeChild(jbTest);
real.parentNode.removeChild(real)
}
jbMap['ads_one'] = function() {
document.writeln('<a href="http://www.dbjr.com.cn/" target="_blank">腳本之家</a>');
};
jbMap['ads_two'] = function() {
document.writeln('<scr'+'ipt type="text/javascript">var cpro_id = "u336546";</script><script src=" };
jbMap['ads_three'] = function() {
document.writeln('<scri'+'pt async src="http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></scri'+'pt><ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-1247620132145618" data-ad-slot="2253650178" data-override-format="true" data-page-url="http://www.dbjr.com.cn"></ins><scri'+'pt>(adsbygoogle = window.adsbygoogle || []).push({});</s'+'cript>');
};
注意:jbMap是放置廣告的數(shù)組,數(shù)組的Key和Span標(biāo)記的ID是對(duì)應(yīng)的,我們可以在這個(gè)JS中按照這種形式添加自己的廣告。這種廣告加載方式,支持自定義的HTML廣告、百度聯(lián)盟廣告、谷歌聯(lián)盟廣告,這里都給大家做了演示。
三、在頁面底部中引入JS,調(diào)用jbLoader加載廣告
<script type="text/javascript" src='js/jbLoader.js'></script>
<script>jbLoader();</script><script class="closetag">jbLoader(true);</script>
<script>jbLoader();</script><script class="closetag">jbLoader(true);</script>
<script>jbLoader();</script><script class="closetag">jbLoader(true);</script>
注意:格式必須是如上這種格式,有幾個(gè)占位符,就添加幾個(gè)<script>jbLoader();</script><script class="closetag">jbLoader(true);</script>
不要問小編為什么要這樣調(diào)用,其實(shí)小編也研究了一下:
1.第一次jbLoader()是為了寫標(biāo)記,第二次jbLoader(true)是為了替換標(biāo)記。
2.用兩個(gè)<script>是為了第二次調(diào)用能取到相應(yīng)的元素。
3.有幾個(gè)占位符就寫幾行script是為了互不影響,各顯示各的。
總之:好多大網(wǎng)站都在使用這種方法,大家放心用好了。至此,就完成了頁面廣告后加載的調(diào)用。
- 又一個(gè)不錯(cuò)的js浮動(dòng)廣告代碼
- 用javascript實(shí)現(xiàn)的仿Flash廣告圖片輪換效果
- js退彈 IE關(guān)閉時(shí)彈出廣告代碼,可以防止屏蔽
- 兼容多瀏覽器的JS 浮動(dòng)廣告[推薦]
- js 居中漂浮廣告
- 兼容性非常好的js右下角與漂浮廣告代碼
- javascript 廣告后加載,加載完頁面再加載廣告
- js網(wǎng)頁側(cè)邊隨頁面滾動(dòng)廣告效果實(shí)現(xiàn)
- js漂浮廣告實(shí)現(xiàn)代碼(合集經(jīng)典) 符合W3C
- JS實(shí)現(xiàn)懸浮移動(dòng)窗口(懸浮廣告)的特效
相關(guān)文章
JS/jQuery判斷DOM節(jié)點(diǎn)是否存在的簡(jiǎn)單方法
下面性價(jià)比就為大家?guī)硪黄狫S/jQuery判斷DOM節(jié)點(diǎn)是否存在的簡(jiǎn)單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起 小編過來看看吧2016-11-11小程序通過小程序云實(shí)現(xiàn)微信支付功能實(shí)例
本文主要介紹了小程序通過小程序云實(shí)現(xiàn)微信支付功能實(shí)例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07BooStrap對(duì)導(dǎo)航條的改造實(shí)踐小結(jié)
這篇文章主要介紹了BooStrap對(duì)導(dǎo)航條的改造實(shí)踐小結(jié)的相關(guān)資料,本文分步驟介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09基于Bootstrap的Metronic框架實(shí)現(xiàn)頁面鏈接收藏夾功能
本文給大家介紹基于Metronic的Bootstrap開發(fā)框架實(shí)現(xiàn)頁面鏈接收藏夾功能,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-08-08微信小程序?qū)W習(xí)筆記之本地?cái)?shù)據(jù)緩存功能詳解
這篇文章主要介紹了微信小程序?qū)W習(xí)筆記之本地?cái)?shù)據(jù)緩存功能,結(jié)合實(shí)例形式分析了微信小程序wx.setStorage、wx.getStorage以及wx.removeStorage、wx.clearStorage針對(duì)數(shù)據(jù)緩存的存取、刪除等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03JavaScript使用類似break機(jī)制中斷forEach循環(huán)的方法
這篇文章主要介紹了JavaScript使用類似break機(jī)制中斷forEach循環(huán)的方法,需要的朋友可以參考下2018-11-11