用JS實(shí)現(xiàn)的一個(gè)include函數(shù)
更新時(shí)間:2007年07月21日 00:00:00 作者:
很多語(yǔ)言都有類似php中的include和require功能的函數(shù),而唯獨(dú)javascript沒有。
很早就想在js中實(shí)現(xiàn)類似的功能,嘗試了很多次都沒有成功,那天在google上搜索一些關(guān)于動(dòng)態(tài)加載css文件的關(guān)鍵詞時(shí),發(fā)現(xiàn)一個(gè)blog(地址找不到了)上的一個(gè)為網(wǎng)頁(yè)的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)頁(yè)消失,只顯示document.write出來的內(nèi)容:mad:
嘿嘿,對(duì)于這個(gè)問題,我自然有妙招:
就是重定義 document.write方法,讓他不顯示任何東西。具體做法:
在 include_js 之前加上這句
document.write = function () { return false;}
這樣,就算include過來的js文件含有document.write方法我們也不怕它破壞網(wǎng)頁(yè)了!:lol::lol:
用途:
本函數(shù)可以用于一些廣告和統(tǒng)計(jì)的js文件異步加載,避免了因加載js文件而造成的網(wǎng)頁(yè)顯示速度慢的問題。
將此函數(shù)修改一下便可以動(dòng)態(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)于動(dòng)態(tài)加載css文件的關(guān)鍵詞時(shí),發(fā)現(xiàn)一個(gè)blog(地址找不到了)上的一個(gè)為網(wǎng)頁(yè)的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)頁(yè)消失,只顯示document.write出來的內(nèi)容:mad:
嘿嘿,對(duì)于這個(gè)問題,我自然有妙招:
就是重定義 document.write方法,讓他不顯示任何東西。具體做法:
在 include_js 之前加上這句
document.write = function () { return false;}
這樣,就算include過來的js文件含有document.write方法我們也不怕它破壞網(wǎng)頁(yè)了!:lol::lol:
用途:
本函數(shù)可以用于一些廣告和統(tǒng)計(jì)的js文件異步加載,避免了因加載js文件而造成的網(wǎng)頁(yè)顯示速度慢的問題。
將此函數(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);
}
相關(guān)文章
js實(shí)現(xiàn)增加數(shù)字顯示的環(huán)形進(jìn)度條效果
本文主要分享了js實(shí)現(xiàn)增加數(shù)字顯示的環(huán)形進(jìn)度條效果的示例代碼。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02JS計(jì)算網(wǎng)頁(yè)停留時(shí)間代碼
這篇文章主要介紹了JS計(jì)算網(wǎng)頁(yè)停留時(shí)間的具體實(shí)現(xiàn),需要的朋友可以參考下2014-04-04javascript高級(jí)模塊化require.js的具體使用方法
本篇文章主要介紹了javascript高級(jí)模塊化require.js的具體使用方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-10-10使用do...while的方法輸入一個(gè)月中所有的周日(實(shí)例代碼)
下面小編就為大家?guī)硪黄褂胐o...while的方法輸入一個(gè)月中所有的周日(實(shí)例代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07使用js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的滾動(dòng)條過程解析
這篇文章主要介紹了使用js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的滾動(dòng)條過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09原生javascript模仿win8等待提示圓圈進(jìn)度條
一直很中意win8等待提示圓圈進(jìn)度條,下面本文就使用原生javascript模仿win8等待進(jìn)度條,需要的朋友可以參考下2014-04-04javascript開發(fā)中因空格引發(fā)的錯(cuò)誤
最近寫一個(gè)關(guān)于用JavaScript做圖片自動(dòng)切換問題發(fā)現(xiàn)一個(gè)非常奇特的問題,除了空格和換行外完全相同的代碼,在Firefox下卻有截然不同的運(yùn)行結(jié)果,今天記錄以提供他人留意及自我備查。2010-11-11JS生成隨機(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