大多數語言都有包含其它代碼文件的命令,如ASP和c/c++下的Include,java下的import,唯獨javascript好像沒這功能,為了應付工作,特寫了如下這個函數:
//******************************************************
// 包含文件 用法: $import('../include/mian.js', 'js');
//???????????????? $import('../style/style.css', 'css');
//******************************************************
function $import(path, type){
?var i,
????? base,
????? src = "common.js",
????? scripts = document.getElementsByTagName("script");
?
?for (i = 0; i < scripts.length; i++) {
????? if (scripts[i].src.match(src)) {
????????? base = scripts[i].src.replace(src, "");
????????? break;
????? }
? }
?
? if (type == "css") {
????? document.write("<" + "link href=\"" + base + path + "\" rel=\"stylesheet\" type=\"text/css\"></" + "link>");
? } else {
????? document.write("<" + "script src=\"" + base + path + "\"></" + "script>");
? }
}
附帶幾個類型判斷的函數:
//******************************************************
// 判斷類型
//******************************************************
function isAlien(a) {
? return isObject(a) && typeof a.constructor != 'function';
}
?
function isArray(a) {
? return isObject(a) && a.constructor == Array;
}
function isBoolean(a) {
? return typeof a == 'boolean';
}
function isEmpty(o) {
? var i, v;
? if (isObject(o)) {
??? for (i in o) {
????? v = o[i];
????? if (isUndefined(v) && isFunction(v)) {
??????? return false;
????? }
??? }
? }
? return true;
}
function isFunction(a) {
? return typeof a == 'function';
}
function isNull(a) {
? return typeof a == 'object' && !a;
}
function isNumber(a) {
? return typeof a == 'number' && isFinite(a);
}
function isObject(a) {
? return (a && typeof a == 'object') || isFunction(a);
}
function isString(a) {
? return typeof a == 'string';
}
function isUndefined(a) {
? return typeof a == 'undefined';
}