今天打算在一个工程里面加上 jsValidation,却发现 validation-framework.js 在FireFox下没办法读取配置文件。搞半天才晓得原来是其中的 XmlDocument 类版本太老了。没关系,在 buffalo.js 里面有现成的,拷过来就能用了。
而老版本的是酱紫滴:
function XmlDocument() {
}
XmlDocument.create = function () {
try {
if (document.implementation && document.implementation.createDocument) {
var doc = document.implementation.createDocument("", "", null);
if (doc.readyState == null) {
doc.readyState = 1;
doc.addEventListener("load", function () {
doc.readyState = 4;
if (typeof doc.onreadystatechange == "function")
doc.onreadystatechange();
}, false);
}
return doc;
}
if (window.ActiveXObject)
return new ActiveXObject(getDomDocumentPrefix() + ".DomDocument");
}
catch (ex) {
}
throw new Error("Your browser does not support XmlDocument objects");
};
}
XmlDocument.create = function () {
try {
if (document.implementation && document.implementation.createDocument) {
var doc = document.implementation.createDocument("", "", null);
if (doc.readyState == null) {
doc.readyState = 1;
doc.addEventListener("load", function () {
doc.readyState = 4;
if (typeof doc.onreadystatechange == "function")
doc.onreadystatechange();
}, false);
}
return doc;
}
if (window.ActiveXObject)
return new ActiveXObject(getDomDocumentPrefix() + ".DomDocument");
}
catch (ex) {
}
throw new Error("Your browser does not support XmlDocument objects");
};
而老版本的是酱紫滴:
function XmlDocument() {}
XmlDocument.create = function () {
if (document.implementation && document.implementation.createDocument) {
return document.implementation.createDocument("", "", null);
} else if (window.ActiveXObject) {
try {
var prefix = ["MSXML2", "MSXML", "Microsoft", "MSXML3"];
for (var i = 0; i < prefix.length; i++) {
//return new ActiveXObject(prefix[i] + ".DomDocument");
var obj = new ActiveXObject(prefix[i] + ".DomDocument");
if (obj == null || typeof(obj) == 'undefined') {
continue;
} else {
return obj;
}
}
} catch (e) {
//^_^
throw new Error("My God, What version of IE are you using? IE5&+ is requiered.");
}
} else
throw new Error("Cannot create DOM Document!");
}
XmlDocument.create = function () {
if (document.implementation && document.implementation.createDocument) {
return document.implementation.createDocument("", "", null);
} else if (window.ActiveXObject) {
try {
var prefix = ["MSXML2", "MSXML", "Microsoft", "MSXML3"];
for (var i = 0; i < prefix.length; i++) {
//return new ActiveXObject(prefix[i] + ".DomDocument");
var obj = new ActiveXObject(prefix[i] + ".DomDocument");
if (obj == null || typeof(obj) == 'undefined') {
continue;
} else {
return obj;
}
}
} catch (e) {
//^_^
throw new Error("My God, What version of IE are you using? IE5&+ is requiered.");
}
} else
throw new Error("Cannot create DOM Document!");
}