|
很早就想在js中實(shí)現(xiàn)類似的功能,嘗試了很多次都沒有成功,那天在google上搜索一些關(guān)于動(dòng)態(tài)加載css文件的關(guān)鍵詞時(shí),發(fā)現(xiàn)一個(gè)blog(地址找不到了)上的一個(gè)為網(wǎng)頁的head標(biāo)簽增加link元素的函數(shù),于是就改了一下,寫了這個(gè)函數(shù)。
用法:
include_js(src,[reload]);
src: js文件的路徑名
reload:可選參數(shù),0或1,表示是否重復(fù)加載同一個(gè)url的js文件。
說明:
當(dāng)包含的js文件中有document.write方法時(shí),在IE下沒有反應(yīng),但在Mozilla Firefox 下就會(huì)讓你原來的網(wǎng)頁消失,只顯示document.write出來的內(nèi)容:mad:
嘿嘿,對(duì)于這個(gè)問題,我自然有妙招:
就是重定義 document.write方法,讓他不顯示任何東西。具體做法:
在 include_js 之前加上這句
document.write = function () { return false;}
這樣,就算include過來的js文件含有document.write方法我們也不怕它破壞網(wǎng)頁了!:lol::lol:
用途:
本函數(shù)可以用于一些廣告和統(tǒng)計(jì)的js文件異步加載,避免了因加載js文件而造成的網(wǎng)頁顯示速度慢的問題。
將此函數(shù)修改一下便可以動(dòng)態(tài)加載css文件,不過用處就沒有加載js文件的大。
復(fù)制代碼 代碼如下:
function include_js(path,reload)
{
var scripts = document.getElementsByTagName("script");
if (!reload)
for (var i=0;i<scripts.length;i++)
if (scripts[i].src && scripts[i].src.toLowerCase() == path.toLowerCase() ) return;
var sobj = document.createElement('script');
sobj.type = "text/Javascript";
sobj.src = path;
var headobj = document.getElementsByTagName('head')[0];
headobj.appendChild(sobj);
}
JavaScript技術(shù):用JS實(shí)現(xiàn)的一個(gè)include函數(shù),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。