Simditor是Tower开源的所见即所得的在线富文本编辑器。它是一款十分优秀的国产富文本编辑器。Simditor的理念是保持简单,避免过度的功能,每一个特性都追求极致的用户体验。同时,Simditor也很容易扩展。
// wujianming 20201222 新增框架报错信息捕获,反馈给后台
window.onerror = function (errorMessage, scriptURI, lineNo, columNo, error) {
console.log('errorMessage:' + errorMessage);
console.log('scriptURI:' + scriptURI);
console.log('lineNo:' + lineNo);//异常行号
console.log('columNo:' + columNo);//异常列号
console.log('error:' + error);//异常堆栈信息
var httphtml;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
httphtml = new XMLHttpRequest();
} else {
// code for IE6, IE5
httphtml = new ActiveXObject("Microsoft.XMLHTTP");
}
if (!httphtml) {
alert("httphtml异常");
returnfalse;
}
//将账户名和密码进行编码传递,放置数据乱码
//方法一,通过问号传递
var postData = {
DataType: errorMessage,
InputParam: scriptURI,
Data1: lineNo,
Data2: columNo,
TimeStamp: Date.parse(new Date()) / 1000
};
//异步 - True 或 False?
httphtml.open("POST", "/Interface/AjaxPostJsErr", false);
httphtml.onreadystatechange = function () {
/*
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
*/
if (httphtml.readyState == 4) {
/*
200: "OK"
404: 未找到页面
*/
if (httphtml.status == 200) {
/*
//将ajax请求处理后返回的值显示出来
var value = httphtml.responseText;
//函数eval对json格式字符串进行反序列化操作。
var obj = eval("(" + value + ")");
if (obj.state == "1") {
alert(obj.msg);
}
else {
alert(obj.msg);
}*/
} else {
//alert("ajax请求错误!");
}
}
}
//有两种办法处理:第一种方式是 用来将对象序列化为JSON字符串(JSON.stringify()),
//第二种方式是直接用双引号包裹起来,比如data: "{'accountName':'foovalue', 'password':'barvalue'}"。
var data = JSON.stringify(postData);
httphtml.setRequestHeader("Data-Type","json");
httphtml.setRequestHeader("Content-Type","application/json");
//将请求发送到服务器。参数string仅用于POST请求;
httphtml.send(data);
}
//throw new Error('这是一个错误');
/*3.用正则表达式实现html转码*/
function htmlEncodeByRegExp(str) {
var s = "";
if (str.length == 0) return "";
s = str.replace(/&/g, "&");
s = s.replace(//g, ">");
s = s.replace(/ /g, " ");
s = s.replace(/\'/g, "'");
s = s.replace(/\"/g, """);
return s;
}
/*4.用正则表达式实现html解码*/
function htmlDecodeByRegExp(str) {
var s = "";
if (str.length == 0) return "";
s = str.replace(/&/g, "&");
s = s.replace(/</g, "<");
s = s.replace(/>/g, ">");
s = s.replace(/ /g, " ");
s = s.replace(/'/g, "\'");
s = s.replace(/"/g, "\"");
return s;
}
function IsEmpty(obj) {
if (typeof obj == "undefined" || obj == null || obj == "" || obj == "NaN") {
return true;
} else {
return false;
}
}
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);
}
//生成随机 GUID 数
function guid() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
PrintConsoleInfo();