很多語言都有類似php中的include和require功能的函數,而唯獨javascript沒有。
很早就想在js中實現類似的功能,嘗試了很多次都沒有成功,那天在google上搜索一些關於動態加載css文件的關鍵詞時,發現一個blog(地址找不到了)上的一個為網頁的head標籤增加link元素的函數,於是就改了一下,寫了這個函數。

用法:
include_js(src,[reload]);
src: js文件的路徑名
reload:可選參數,0或1,表示是否重複加載同一個url的js文件。

說明:
當包含的js文件中有document.write方法時,在IE下沒有反應,但在Mozilla Firefox 下就會讓你原來的網頁消失,只顯示document.write出來的內容:mad:  
嘿嘿,對於這個問題,我自然有妙招:
就是重定義 document.write方法,讓他不顯示任何東西。具體做法:
在 include_js 之前加上這句
程序代碼 程序代碼
document.write = function () { return false;}

這樣,就算include過來的js文件含有document.write方法我們也不怕它破壞網頁了!:lol::lol:

用途:
本函數可以用於一些廣告和統計的js文件異步加載,避免了因加載js文件而造成的網頁顯示速度慢的問題。

將此函數修改一下便可以動態加載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);
}
創作者介紹
創作者 kevin0523 的頭像
kevin0523

新‧夢想

kevin0523 發表在 痞客邦 留言(0) 人氣()