2008/11/11

網頁也能動態載入 Javascript 嗎?

答案是肯定的。先來看一個小片斷取名為 mtm.js:

function import (path) {
var i, base="";
var src = 'mtm.js'; // 這裡的 mtm.js 要與「存有這程式片斷的檔案」相同的檔名
var scripts = document.getElementsByTagName("script"); // 照理說,這是一個陣

var hadExisted = false;
path = path.replace(/\./g, "/") + '.js'; // 會幫忙加上副檔名 .js
for (i=0; i<scripts.length; i++) {
if (scripts[i].src.match(src)) {
base = scripts[i].src.replace(src, "");
}
if (scripts[i].src.match(path)) {
hadExisted = true;
}
}
if (!hadExisted) {
document.write("<" + "script src=\"" + base + path + "\"></" +
"script>");
}
}

再來看示範檔案,這邊用的也是 javascript:

/* in Matrix.js */
import ('core.math.MathHelper'); /* 路徑可以用 . 也可以用 / */
import ('core.math.const');

function Matrix(args)
{
....

}

/* in Vector.js */
import ('core.math.MathHelper'); /* 路徑可以用 . 也可以用 / */
import ('core.math.const');

function Vector(args)
{
....

}

這樣用的原因是,在定義物件時,可以以比較模組化的方式設計,因此有些元件可以跟別的物件共用,在使用上有可能別人已經載入了,所以透過
import 來判斷,若已載入就不要重複載入。

0 意見: