用JS實(shí)現(xiàn)的一個include函數(shù)
更新時間:2007年07月21日 00:00:00 作者:
很多語言都有類似php中的include和require功能的函數(shù),而唯獨(dú)javascript沒有。
很早就想在js中實(shí)現(xiàn)類似的功能,嘗試了很多次都沒有成功,那天在google上搜索一些關(guān)于動態(tài)加載css文件的關(guān)鍵詞時,發(fā)現(xiàn)一個blog(地址找不到了)上的一個為網(wǎng)頁的head標(biāo)簽增加link元素的函數(shù),于是就改了一下,寫了這個函數(shù)。
用法:
include_js(src,[reload]);
src: js文件的路徑名
reload:可選參數(shù),0或1,表示是否重復(fù)加載同一個url的js文件。
說明:
當(dāng)包含的js文件中有document.write方法時,在IE下沒有反應(yīng),但在Mozilla Firefox 下就會讓你原來的網(wǎng)頁消失,只顯示document.write出來的內(nèi)容:mad:
嘿嘿,對于這個問題,我自然有妙招:
就是重定義 document.write方法,讓他不顯示任何東西。具體做法:
在 include_js 之前加上這句
document.write = function () { return false;}
這樣,就算include過來的js文件含有document.write方法我們也不怕它破壞網(wǎng)頁了!:lol::lol:
用途:
本函數(shù)可以用于一些廣告和統(tǒng)計的js文件異步加載,避免了因加載js文件而造成的網(wǎng)頁顯示速度慢的問題。
將此函數(shù)修改一下便可以動態(tài)加載css文件,不過用處就沒有加載js文件的大。
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);
}
很早就想在js中實(shí)現(xiàn)類似的功能,嘗試了很多次都沒有成功,那天在google上搜索一些關(guān)于動態(tài)加載css文件的關(guān)鍵詞時,發(fā)現(xiàn)一個blog(地址找不到了)上的一個為網(wǎng)頁的head標(biāo)簽增加link元素的函數(shù),于是就改了一下,寫了這個函數(shù)。
用法:
include_js(src,[reload]);
src: js文件的路徑名
reload:可選參數(shù),0或1,表示是否重復(fù)加載同一個url的js文件。
說明:
當(dāng)包含的js文件中有document.write方法時,在IE下沒有反應(yīng),但在Mozilla Firefox 下就會讓你原來的網(wǎng)頁消失,只顯示document.write出來的內(nèi)容:mad:
嘿嘿,對于這個問題,我自然有妙招:
就是重定義 document.write方法,讓他不顯示任何東西。具體做法:
在 include_js 之前加上這句
document.write = function () { return false;}
這樣,就算include過來的js文件含有document.write方法我們也不怕它破壞網(wǎng)頁了!:lol::lol:
用途:
本函數(shù)可以用于一些廣告和統(tǒng)計的js文件異步加載,避免了因加載js文件而造成的網(wǎng)頁顯示速度慢的問題。
將此函數(shù)修改一下便可以動態(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);
}
相關(guān)文章
js實(shí)現(xiàn)增加數(shù)字顯示的環(huán)形進(jìn)度條效果
本文主要分享了js實(shí)現(xiàn)增加數(shù)字顯示的環(huán)形進(jìn)度條效果的示例代碼。具有一定的參考價值,下面跟著小編一起來看下吧2017-02-02
javascript高級模塊化require.js的具體使用方法
本篇文章主要介紹了javascript高級模塊化require.js的具體使用方法,非常具有實(shí)用價值,需要的朋友可以參考下2017-10-10
使用do...while的方法輸入一個月中所有的周日(實(shí)例代碼)
下面小編就為大家?guī)硪黄褂胐o...while的方法輸入一個月中所有的周日(實(shí)例代碼)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07
原生javascript模仿win8等待提示圓圈進(jìn)度條
一直很中意win8等待提示圓圈進(jìn)度條,下面本文就使用原生javascript模仿win8等待進(jìn)度條,需要的朋友可以參考下2014-04-04
JS生成隨機(jī)數(shù)的多種方法匯總(不同范圍、類型的隨機(jī)數(shù))
js產(chǎn)生隨機(jī)數(shù)通常是使用javascript的Math.random()函數(shù),下面這篇文章主要給大家介紹了關(guān)于JS生成隨機(jī)數(shù)的多種方法(不同范圍、類型的隨機(jī)數(shù))的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11

