我将自己平时工作常用的方法封装成自己的JavaScript代码库,特此发一篇文章作为笔记,方便查询
/****************************************************************************/
/*
* V.0.0.1
* add by ftm
*
*/
; (function($) {
function _init() {
top.tip("test");
}
function _doclose() {
window.parent.closeTabByCircle();
}
function _saveV1(obj) {
$.post(
$('#formobj').attr('action'),
$('#formobj').serialize(),
function(result){
var data = stringutils.parseJSONObject(result);
if (data.success) {
//top.tip(data.msg);
showloading();
//2. 流程
console.log(data);
hiddenloading();
//_doclose();
} else {
top.tip(data.msg);
}
});
}
function _save(obj) {
$.post(
$('#formobj').attr('action'),
$('#formobj').serialize(),
function(result){
var data = stringutils.parseJSONObject(result);
if (data.success) {
//top.tip(data.msg);
showloading();
//2. 流程
console.log(data);
hiddenloading();
_doclose();
} else {
top.tip(data.msg);
}
});
}
function _upladFileV3(uploadurl, idname, func1, func2) {
var fileObj = document.getElementById(idname).files[0]; // js 获取文件对象
var url = uploadurl; // 接收上传文件的后台地址
var form = new FormData(); // FormData 对象
form.append("file", fileObj); // 文件对象
var xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
xhr.onload = func1; //请求完成
xhr.onerror = func2; //请求失败
//xhr.upload.onprogress = progressFunctionV2;//【上传进度调用方法实现】
xhr.upload.onloadstart = function() { //上传开始执行方法
ot = new Date().getTime(); //设置上传开始时间
oloaded = 0; //设置上传开始时,以上传的文件大小为0
};
xhr.send(form); //开始上传,发送form数据
}
function _getFileSizeMap() {
var filesizeMap = new Map();
filesizeMap.set('doc', 25); //30MB
filesizeMap.set('docx', 25); //30MB
filesizeMap.set('xls', 15); //20MB
filesizeMap.set('xlsx', 15); //20MB
filesizeMap.set('ppt', 45); //50MB
filesizeMap.set('pptx', 45); //50MB
return filesizeMap;
}
function _getUrlParam(name) {
var params = decodeURI(window.location.search);
/* 截取?号后面的部分 index.html?act=doctor,截取后的字符串就是?act=doctor */
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = params.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
function _getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return (false);
}
function _verifyNew(obj) {
var reason = ''
if('reason' in obj){
reason = obj.reason;
}
/* 2021 默认框架流程
$.ajax({
url: 'docscgVerifyController.do?doVerifyNew',
type: 'post',
data: {
flowid: obj.flowid,
id: $('#id').val(),
staid: $('#nodeid').val(),
sta: $('#status').val(),
curemp: '',
dec: obj.operate,
//审核动作(提交,同意,驳回)
sug: reason
},
cache: false,
async: false,
success: function(data) {
if ('suc' == data) {
top.tip(data);
window.parent.closeTabByCircle();
} else {
tip(data);
}
hiddenloading();
}
});
*/
$.ajax({
url: 'docscgVerifyController.do?doVerifyNewByFanWei',
type: 'post',
data: {
flowid: obj.flowid,
id: $('#id').val(),
staid: $('#nodeid').val(),
sta: $('#status').val(),
curemp: '',
dec: obj.operate,
//审核动作(提交,同意,驳回)
sug: reason
},
cache: false,
async: false,
success: function(data) {
if ('提交成功!' == data) {
top.tip(data);
window.parent.closeTabByCircle();
} else {
tip(data);
}
hiddenloading();
}
});
}
function _submit(obj) {
$("#formobj").Validform({
tiptype: 4,
callback: function(result) {
var data = stringutils.parseJSONObject(result);
if (data.success) {
//top.tip(data.msg);
showloading();
//2. 流程
console.log(obj);
_verifyNew(obj);
} else {
top.tip(data.msg);
}
}
}).ajaxPost(false, true);
}
function _submitV2(callback, obj) {
$("#formobj").Validform({
tiptype: 4,
callback: function(result) {
var data = stringutils.parseJSONObject(result);
if (data.success) {
//top.tip(data.msg);
showloading();
//2. 流程
if (callback) {
callback(obj);
}
} else {
top.tip(data.msg);
//doclose(false);
}
}
}).ajaxPost(false, true);
}
function _showDlgReason(obj){
createwindowWithButton(
"驳回原因",
"dccInternalFileController.do?cancleC",
600,260,
function(){
iframe = this.iframe.contentWindow;
//-----------------------------
var fomrobjV = iframe.$("#formobj").Validform({tiptype:4});
var flag = false;
if(fomrobjV.check()){
var reason = iframe.$("#cancelRea").val();
obj.reason = reason;
_verifyNew(obj);
flag = true;
}else{
flag = false;
}
if(flag){
return true;
}else{
return false;
}
},
function(){
return true;
}
)
}
function _showDlgReasonV2(callback, obj){
createwindowWithButton(
"驳回原因",
"dccInternalFileController.do?cancleC",
600,260,
function(){
iframe = this.iframe.contentWindow;
//-----------------------------
var fomrobjV = iframe.$("#formobj").Validform({tiptype:4});
var flag = false;
if(fomrobjV.check()){
var reason = iframe.$("#cancelRea").val();
obj.reason = reason;
callback(obj);
flag = true;
}else{
flag = false;
}
if(flag){
return true;
}else{
return false;
}
},
function(){
return true;
}
)
}
function _showProccessbar() {
$.messager.progress({
title: '请稍后',
msg: '数据处理中...',
text: '0',
interval: 0
});
var setInter = null;
setInter = setInterval(function() {
$.post("dccCommonController.do?flushProgress3", {
},
function(result) {
var data = stringutils.parseJSONObject(result);
console.log(data.curCount);
showloadingProgress(data.curCount);
if (100 == data.curCount) {
if (setInter != null) {
clearInterval(setInter);
setTimeout(function() {
$.messager.progress('close')
},
1500);
}
}
});
},
500);
}
function _promoteChange(title, url, id, width, height) {
var arr = url.split(",");
_downloadFile("officeOperationController.do?wordPromoteForChange51314&promoteItem="+arr[2]+'&pdocid='+arr[0]+'&changeid='+arr[1]);
_showProccessbar();
}
function _downloadFile(url) {
try {
var elemIF = document.createElement("iframe");
elemIF.src = url;
//elemIF.style.display = "none";
document.body.appendChild(elemIF);
} catch(e) {
top.tip("下载异常!");
}
}
function _webOfficeEditDoc(doctype,showname,type,id){
showname=encodeURI(showname);
showname=showname.replace(/%/g,',');
var strRoot = window.location.origin+"/weboffice/";
doctype = doctype.toLowerCase();
var flag='';
switch(doctype){
case'doc':
flag = 1;
break;
case'wps':
case'docx':
flag = 11;
break;
case'xls':
flag = 2;
break;
case'et':
case'xlsx':
flag = 12;
break;
case'ppt':
flag = 3;
break;
case'dps':
case'pptx':
flag = 13;
break;
}
//
var browserName = StrUtil.myBrowser();
var strUrl = '';
//browserName.indexOf("IE")>-1
if (false) {
//strRoot +
var strUrl = 'webdocedit.jsp?flag='+flag+'&fname='+showname+'&type='+type+'&id='+id+'&isReadOnly=false';
sessionStorage.setItem('webofficeUrl',strUrl);
window.open(docBaseB+'dccSpecAttachController.do?goWefofficeView','_blank');
}else{
var strUrl = 'WebOffice://|Officectrl.com|'+strRoot + 'webdocedit.jsp?flag='+flag+'&fname='+showname+'&type='+type+'&id='+id+'&isReadOnly=false';
window.open(strUrl,'_self');
}
//strUrl = encodeURI(strUrl);
}
function _webOfficeReadDoc(doctype, showname, type, id) {
var strRoot = window.location.origin + "/weboffice/";
doctype = doctype.toLowerCase();
var flag = '';
switch(doctype){
case'doc':
flag = 1;
break;
case'wps':
case'docx':
flag = 11;
break;
case'xls':
flag = 2;
break;
case'et':
case'xlsx':
flag = 12;
break;
case'ppt':
flag = 3;
break;
case'dps':
case'pptx':
flag = 13;
break;
}
/*
showname = encodeURI(showname);
showname = showname.replace(/%/g, ',');
var strUrl = 'WebOffice://|Officectrl.com|(500,300)|' + strRoot + 'pptedit.jsp?flag=' + flag + '&fname=' + showname + '&type=' + type + '&id=' + id + '&isReadOnly=true';
window.open(strUrl, '_self');
*/
/*
var browserName = StrUtil.myBrowser();
var strUrl = '';
//browserName.indexOf("IE") > -1
//用编辑模式作为阅读功能
showname = encodeURI(showname);
showname = showname.replace(/%/g, ',');
var strUrl = strRoot + 'webdocedit.jsp?flag=' + flag + '&fname=' + showname + '&type=' + type + '&id=' + id + '&isReadOnly=true';
window.open(strUrl, '_blank');
*/
/*
showname = encodeURI(showname);
getSetting();
strUrl = strUrltemp + '&-&fileid:1'; //文件ID号+'&type=spec'+'&id=220598'
strUrl = strUrl + '&-&filename:' + showname; //文件名称
strUrl = strUrl + '&-&OpenUrl:' + 'BaseAddr:down?file=' + showname + '&type=' + type + '&id=' + id; //'BaseAddr:file/' + filename;
strUrl = strUrl + '&-&DocType:' + doctype;
strUrl = strUrl + '&-&jsonload:readfile';
//encodeURI(strUrl)
window.open('WebView://' + strUrl, '_self');
//---------------------------------------------------
*/
showname = encodeURI(showname);
showname=showname.replace(/%/g,',');
var strUrl = 'WebOffice://|Officectrl.com|'+strRoot + 'webdocedit.jsp?flag='+flag+'&fname='+showname+'&type='+type+'&id='+id+'&isReadOnly=true';
window.open(strUrl,'_self');
}
function getSetting(){
var strRoot = window.location.origin+"/weboffice/";
strUrltemp = 'BaseAddr:'+strRoot;//BaseAddr 一般是项目的发布路径 strRoot 的值,strRoot 的值通过浏览器地址栏检测出,也可以直接由程序写定。
strUrltemp = strUrltemp + '&-&jsfile:BaseAddr:web_weboffice.js';//jsfile指定控件运行的Javascript API接口函数库的js代码文件名称 BaseAddr: 经控件解析执行后即为上面 strRoot 的值
strUrltemp = strUrltemp + '&-&jsutf8:1';//Javascript API接口函数库的js代码文件的编码格式 当值为1时表示是:utf-8,0为gb2312
strUrltemp = strUrltemp + '&-&debug:1';//是否开启调试模式,debug值为1时,则Javascript API接口函数库的js代码文件修改后重新加载,并在窗口标题栏显示点击的菜单ID号
}
function _getFileSuffix(name){
return name.substring(name.lastIndexOf('.')+1).toLowerCase();
}
//,'xbm','tif','pjp','jfif','webp','pjpeg','avif','ico','tiff','gif','svg','bmp','png;".pict','jpeg','svgz','jpg'
var _formatArr = ['pdf','docx', 'xlsx','pptx','wps','et','dps'];
//---------------MD5*START---------------
//资源地址:https://www.cnblogs.com/lizhaoyao/p/6046919.html
var hexcase = 0;
function _hex_md5(a) {
if (a == "") return a;
return _rstr2hex(_rstr_md5(_str2rstr_utf8(a)))
}
function hex_hmac_md5(a, b) {
return _rstr2hex(_rstr_hmac_md5(_str2rstr_utf8(a), _str2rstr_utf8(b)))
}
function _rstr_md5(a) {
return _binl2rstr(_binl_md5(_rstr2binl(a), a.length * 8))
}
function _rstr_hmac_md5(c, f) {
var e = _rstr2binl(c);
if (e.length > 16) {
e = _binl_md5(e, c.length * 8)
}
var a = Array(16),
d = Array(16);
for (var b = 0; b < 16; b++) {
a[b] = e[b] ^ 909522486;
d[b] = e[b] ^ 1549556828
}
var g = _binl_md5(a.concat(_rstr2binl(f)), 512 + f.length * 8);
return _binl2rstr(_binl_md5(d.concat(g), 512 + 128))
}
function _rstr2hex(c) {
try {
hexcase
} catch(g) {
hexcase = 0
}
var f = hexcase ? "0123456789ABCDEF": "0123456789abcdef";
var b = "";
var a;
for (var d = 0; d < c.length; d++) {
a = c.charCodeAt(d);
b += f.charAt((a >>> 4) & 15) + f.charAt(a & 15)
}
return b
}
function _str2rstr_utf8(c) {
var b = "";
var d = -1;
var a, e;
while (++d < c.length) {
a = c.charCodeAt(d);
e = d + 1 < c.length ? c.charCodeAt(d + 1) : 0;
if (55296 <= a && a <= 56319 && 56320 <= e && e <= 57343) {
a = 65536 + ((a & 1023) << 10) + (e & 1023);
d++
}
if (a <= 127) {
b += String.fromCharCode(a)
} else {
if (a <= 2047) {
b += String.fromCharCode(192 | ((a >>> 6) & 31), 128 | (a & 63))
} else {
if (a <= 65535) {
b += String.fromCharCode(224 | ((a >>> 12) & 15), 128 | ((a >>> 6) & 63), 128 | (a & 63))
} else {
if (a <= 2097151) {
b += String.fromCharCode(240 | ((a >>> 18) & 7), 128 | ((a >>> 12) & 63), 128 | ((a >>> 6) & 63), 128 | (a & 63))
}
}
}
}
}
return b
}
function _rstr2binl(b) {
var a = Array(b.length >> 2);
for (var c = 0; c < a.length; c++) {
a[c] = 0
}
for (var c = 0; c < b.length * 8; c += 8) {
a[c >> 5] |= (b.charCodeAt(c / 8) & 255) << (c % 32)
}
return a
}
function _binl2rstr(b) {
var a = "";
for (var c = 0; c < b.length * 32; c += 8) {
a += String.fromCharCode((b[c >> 5] >>> (c % 32)) & 255)
}
return a
}
function _binl_md5(p, k) {
p[k >> 5] |= 128 << ((k) % 32);
p[(((k + 64) >>> 9) << 4) + 14] = k;
var o = 1732584193;
var n = -271733879;
var m = -1732584194;
var l = 271733878;
for (var g = 0; g < p.length; g += 16) {
var j = o;
var h = n;
var f = m;
var e = l;
o = _md5_ff(o, n, m, l, p[g + 0], 7, -680876936);
l = _md5_ff(l, o, n, m, p[g + 1], 12, -389564586);
m = _md5_ff(m, l, o, n, p[g + 2], 17, 606105819);
n = _md5_ff(n, m, l, o, p[g + 3], 22, -1044525330);
o = _md5_ff(o, n, m, l, p[g + 4], 7, -176418897);
l = _md5_ff(l, o, n, m, p[g + 5], 12, 1200080426);
m = _md5_ff(m, l, o, n, p[g + 6], 17, -1473231341);
n = _md5_ff(n, m, l, o, p[g + 7], 22, -45705983);
o = _md5_ff(o, n, m, l, p[g + 8], 7, 1770035416);
l = _md5_ff(l, o, n, m, p[g + 9], 12, -1958414417);
m = _md5_ff(m, l, o, n, p[g + 10], 17, -42063);
n = _md5_ff(n, m, l, o, p[g + 11], 22, -1990404162);
o = _md5_ff(o, n, m, l, p[g + 12], 7, 1804603682);
l = _md5_ff(l, o, n, m, p[g + 13], 12, -40341101);
m = _md5_ff(m, l, o, n, p[g + 14], 17, -1502002290);
n = _md5_ff(n, m, l, o, p[g + 15], 22, 1236535329);
o = _md5_gg(o, n, m, l, p[g + 1], 5, -165796510);
l = _md5_gg(l, o, n, m, p[g + 6], 9, -1069501632);
m = _md5_gg(m, l, o, n, p[g + 11], 14, 643717713);
n = _md5_gg(n, m, l, o, p[g + 0], 20, -373897302);
o = _md5_gg(o, n, m, l, p[g + 5], 5, -701558691);
l = _md5_gg(l, o, n, m, p[g + 10], 9, 38016083);
m = _md5_gg(m, l, o, n, p[g + 15], 14, -660478335);
n = _md5_gg(n, m, l, o, p[g + 4], 20, -405537848);
o = _md5_gg(o, n, m, l, p[g + 9], 5, 568446438);
l = _md5_gg(l, o, n, m, p[g + 14], 9, -1019803690);
m = _md5_gg(m, l, o, n, p[g + 3], 14, -187363961);
n = _md5_gg(n, m, l, o, p[g + 8], 20, 1163531501);
o = _md5_gg(o, n, m, l, p[g + 13], 5, -1444681467);
l = _md5_gg(l, o, n, m, p[g + 2], 9, -51403784);
m = _md5_gg(m, l, o, n, p[g + 7], 14, 1735328473);
n = _md5_gg(n, m, l, o, p[g + 12], 20, -1926607734);
o = _md5_hh(o, n, m, l, p[g + 5], 4, -378558);
l = _md5_hh(l, o, n, m, p[g + 8], 11, -2022574463);
m = _md5_hh(m, l, o, n, p[g + 11], 16, 1839030562);
n = _md5_hh(n, m, l, o, p[g + 14], 23, -35309556);
o = _md5_hh(o, n, m, l, p[g + 1], 4, -1530992060);
l = _md5_hh(l, o, n, m, p[g + 4], 11, 1272893353);
m = _md5_hh(m, l, o, n, p[g + 7], 16, -155497632);
n = _md5_hh(n, m, l, o, p[g + 10], 23, -1094730640);
o = _md5_hh(o, n, m, l, p[g + 13], 4, 681279174);
l = _md5_hh(l, o, n, m, p[g + 0], 11, -358537222);
m = _md5_hh(m, l, o, n, p[g + 3], 16, -722521979);
n = _md5_hh(n, m, l, o, p[g + 6], 23, 76029189);
o = _md5_hh(o, n, m, l, p[g + 9], 4, -640364487);
l = _md5_hh(l, o, n, m, p[g + 12], 11, -421815835);
m = _md5_hh(m, l, o, n, p[g + 15], 16, 530742520);
n = _md5_hh(n, m, l, o, p[g + 2], 23, -995338651);
o = _md5_ii(o, n, m, l, p[g + 0], 6, -198630844);
l = _md5_ii(l, o, n, m, p[g + 7], 10, 1126891415);
m = _md5_ii(m, l, o, n, p[g + 14], 15, -1416354905);
n = _md5_ii(n, m, l, o, p[g + 5], 21, -57434055);
o = _md5_ii(o, n, m, l, p[g + 12], 6, 1700485571);
l = _md5_ii(l, o, n, m, p[g + 3], 10, -1894986606);
m = _md5_ii(m, l, o, n, p[g + 10], 15, -1051523);
n = _md5_ii(n, m, l, o, p[g + 1], 21, -2054922799);
o = _md5_ii(o, n, m, l, p[g + 8], 6, 1873313359);
l = _md5_ii(l, o, n, m, p[g + 15], 10, -30611744);
m = _md5_ii(m, l, o, n, p[g + 6], 15, -1560198380);
n = _md5_ii(n, m, l, o, p[g + 13], 21, 1309151649);
o = _md5_ii(o, n, m, l, p[g + 4], 6, -145523070);
l = _md5_ii(l, o, n, m, p[g + 11], 10, -1120210379);
m = _md5_ii(m, l, o, n, p[g + 2], 15, 718787259);
n = _md5_ii(n, m, l, o, p[g + 9], 21, -343485551);
o = _safe_add(o, j);
n = _safe_add(n, h);
m = _safe_add(m, f);
l = _safe_add(l, e)
}
return Array(o, n, m, l)
}
function _md5_cmn(h, e, d, c, g, f) {
return _safe_add(_bit_rol(_safe_add(_safe_add(e, h), _safe_add(c, f)), g), d)
}
function _md5_ff(g, f, k, j, e, i, h) {
return _md5_cmn((f & k) | ((~f) & j), g, f, e, i, h)
}
function _md5_gg(g, f, k, j, e, i, h) {
return _md5_cmn((f & j) | (k & (~j)), g, f, e, i, h)
}
function _md5_hh(g, f, k, j, e, i, h) {
return _md5_cmn(f ^ k ^ j, g, f, e, i, h)
}
function _md5_ii(g, f, k, j, e, i, h) {
return _md5_cmn(k ^ (f | (~j)), g, f, e, i, h)
}
function _safe_add(a, d) {
var c = (a & 65535) + (d & 65535);
var b = (a >> 16) + (d >> 16) + (c >> 16);
return (b << 16) | (c & 65535)
}
function _bit_rol(a, b) {
return (a << b) | (a >>> (32 - b))
};
//----------------MD5*END----------------
var _util = {
init: _init,
save: _save,
saveV1: _saveV1,
submit: _submit,
hex_md5:_hex_md5,
submitV2: _submitV2,
formatArr:_formatArr,
verifyNew: _verifyNew,
upladFileV3: _upladFileV3,
getUrlParam: _getUrlParam,
downloadFile:_downloadFile,
getFileSuffix:_getFileSuffix,
showDlgReason: _showDlgReason,
promoteChange: _promoteChange,
webOfficeRead:_webOfficeReadDoc,
getFileSizeMap: _getFileSizeMap,
webOfficeEdit: _webOfficeEditDoc,
showProccessbar: _showProccessbar,
getQueryVariable: _getQueryVariable
};
/*
if (!window.CircleUtility) {
window.CircleUtility = {};
}
window.CircleUtility = _util;
if (!window.Cutil) {
window.Cutil = window.CircleUtility;
}
*/
if (!window.CircleUtility) {
window.CircleUtility = Object.create(_util);
}
if (!window.Cutil) {
window.Cutil = window.CircleUtility;
}
window.CircleUtility = Object.create(_util);
window.Cutil = window.CircleUtility;
})(jQuery);
//调用
//CircleUtility.init();
调用:
//调用
Cutil.init();