mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-02-06 15:04:58 +00:00
72 lines
1.8 KiB
JavaScript
72 lines
1.8 KiB
JavaScript
////////////////////////////////////////////////////////////////////////
|
|
// Base64 API
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
var scope = {
|
|
VERSIONINFO: "Base64 Module (base64.js) version 0.1",
|
|
global: global,
|
|
require: global.require
|
|
};
|
|
|
|
scope.createMSXMLObject = function() {
|
|
var progIDs = [
|
|
"Msxml2.DOMDocument.6.0",
|
|
"Msxml2.DOMDocument.5.0",
|
|
"Msxml2.DOMDocument.4.0",
|
|
"Msxml2.DOMDocument.3.0",
|
|
"MSXML2.DOMDocument",
|
|
"MSXML.DOMDocument"
|
|
];
|
|
for (var i = 0; i < progIDs.length; i++) {
|
|
try {
|
|
return new ActiveXObject(progIDs[i]);
|
|
} catch(e) {};
|
|
}
|
|
return null;
|
|
};
|
|
|
|
scope.getStream_StringToBinary = function(dText) {
|
|
var adTypeText = 2;
|
|
var adTypeBinary = 1;
|
|
var BinaryStream = new ActiveXObject("ADODB.Stream");
|
|
BinaryStream.Type = adTypeText;
|
|
BinaryStream.CharSet = "utf-8";
|
|
BinaryStream.Open();
|
|
BinaryStream.WriteText(dText);
|
|
BinaryStream.Position = 0;
|
|
BinaryStream.Type = adTypeBinary;
|
|
BinaryStream.Position = 0;
|
|
return BinaryStream.Read();
|
|
};
|
|
|
|
scope.getStream_BinaryToString = function(dBinary) {
|
|
var adTypeText = 2;
|
|
var adTypeBinary = 1;
|
|
var BinaryStream = new ActiveXObject("ADODB.Stream");
|
|
BinaryStream.Type = adTypeBinary;
|
|
BinaryStream.Open();
|
|
BinaryStream.Write(dBinary);
|
|
BinaryStream.Position = 0;
|
|
BinaryStream.Type = adTypeText;
|
|
BinaryStream.CharSet = "utf-8";
|
|
return BinaryStream.ReadText();
|
|
};
|
|
|
|
scope.encode = function(sText) {
|
|
var oXML = scope.createMSXMLObject();
|
|
var oNode = oXML.createElement("base64");
|
|
oNode.dataType = "bin.base64";
|
|
oNode.nodeTypedValue = scope.getStream_StringToBinary(sText);
|
|
return oNode.text;
|
|
};
|
|
|
|
scope.decode = function(vCode) {
|
|
var oXML = scope.createMSXMLObject();
|
|
var oNode = oXML.createElement("base64");
|
|
oNode.dataType = "bin.base64";
|
|
oNode.text = vCode;
|
|
return scope.getStream_BinaryToString(oNode.nodeTypedValue);
|
|
};
|
|
|
|
return scope;
|