粗略一招完毕json数据可视化,使用正则表明式的格式化与高亮突显json字符串

不难易行一招完结json数据可视化

2015/07/21 · JavaScript
· JSON,
数码可视化

原文出处: 吕大豹   

付出一个里头职能时相遇的急需,要把json数据在页面上显示出来,日常浏览器会安装jsonView那样的扩充来看json数据,可是程序要用到的话该如何是好呢?今天在网上检索的时候,发现了这么些小技巧,分享一下。

要用到的中坚是JSON.stringify这几个函数,没悟出吧,经常我们只把它用来种类号json数据。不过那一个stringify是有七个参数的,

JavaScript

JSON.stringify(value [, replacer] [, space])

1
JSON.stringify(value [, replacer] [, space])

,具体描述请看那里:

俺们要用到的就是那第二个参数,它可以指定在扭转的字符串中加多少空格,从而生成有肯定格式的字符串。生成的字符串我们可以置身<pre>标签中,那样就能很好的浮现缩进。然后呢,为了让变化的多寡有高亮效果,大家还足以写一个简约的高亮函数。基本就是如此个原理啦,请看代码完毕:

JavaScript

function output(inp) {
document.body.appendChild(document.createElement(‘pre’)).innerHTML =
inp; } function syntaxHighlight(json) { json = json.replace(/&/g,
‘&’).replace(/</g, ‘<‘).replace(/>/g, ‘>’); return
json.replace(/(“(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\”])*”(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,
function (match) { var cls = ‘number’; if (/^”/.test(match)) { if
(/:$/.test(match)) { cls = ‘key’; } else { cls = ‘string’; } } else if
(/true|false/.test(match)) { cls = ‘boolean’; } else if
(/null/.test(match)) { cls = ‘null’; } return ‘<span class=”‘ + cls +
‘”>’ + match + ‘</span>’; }); } var obj = { num: 1234, str:
‘字符串’, arr: [1,2,3,4,5,6], obj: { name: ‘tom’, age: 10, like:
[‘a’, ‘b’] } }; var str = JSON.stringify(obj, undefined, 4);
output(syntaxHighlight(str));

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function output(inp) {
    document.body.appendChild(document.createElement(‘pre’)).innerHTML = inp;
}
 
function syntaxHighlight(json) {
    json = json.replace(/&/g, ‘&amp;’).replace(/</g, ‘&lt;’).replace(/>/g, ‘&gt;’);
    return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
        var cls = ‘number’;
        if (/^"/.test(match)) {
            if (/:$/.test(match)) {
                cls = ‘key’;
            } else {
                cls = ‘string’;
            }
        } else if (/true|false/.test(match)) {
            cls = ‘boolean’;
        } else if (/null/.test(match)) {
            cls = ‘null’;
        }
        return ‘<span class="’ + cls + ‘">’ + match + ‘</span>’;
    });
}
 
var obj = {
    num: 1234,
    str: ‘字符串’,
    arr: [1,2,3,4,5,6],
    obj: {
        name: ‘tom’,
        age: 10,
        like: [‘a’, ‘b’]
    }
};
var str = JSON.stringify(obj, undefined, 4);
 
output(syntaxHighlight(str));

最平生成的法力就是如此的:

亚洲必赢官网 1

是还是不是简单而又实用呢~

1 赞 1 收藏
评论

亚洲必赢官网 2

 

复制代码 代码如下:

json字符串很有用,有时候有些后台接口重回的音讯是字符串格式的,可读性很差,那么些时候假如有个可以格式化并高亮显示json串的办法那就好多了,上面看看一个正则表明式已毕的json字符串的格式化与高亮彰显

var
utils = {

function obj2str(o){
var r = [];
if(typeof o ==”string”) return
“\””+o.replace(/([\’\”\\])/g,”\\$1″).replace(/(\n)/g,”\\n”).replace(/(\r)/g,”\\r”).replace(/(\t)/g,”\\t”)+”\””;
if(typeof o == “object”){
if(!o.sort){
for(var i in o)
r.push(i+”:”+obj2str(o[i]));
if(!!document.all &&
!/^\n?function\s*toString\(\)\s*\{\n?\s*\[native
code\]\n?\s*\}\n?\s*$/.test(o.toString)){
r.push(“toString:”+o.toString.toString());
}
r=”{“+r.join()+”}”
}else{
for(var i =0;i<o.length;i++)
r.push(obj2str(o[i]))
r=”[“+r.join()+”]”
}
return r;
}
return o.toString();
}

首先是对输入举行转移,即使是目的则转向为正规的json字符串,不是目的时,先将字符串转化为目标(避免不标准的字符串),然后重新倒车为json串。其中json为输入。

/**
*
日期格式化
*

你或许感兴趣的小说:

  • JavaScript中json对象和string对象时期相互转化
  • JS中JSON对象和String之间的互转及处理技术
  • 谈谈JSON对象和字符串之间的竞相转换JSON.stringify(obj)和JSON.parse(string)
  • Json对象与Json字符串互转(4种转移格局)
  • 亚洲必赢官网,JSON字符串转换JSONObject和JSONArray的法门
  • Javascript json object 与string
    相互转换的简短已毕

复制代码 代码如下:

粗略一招完毕json数据可视化,使用正则表明式的格式化与高亮突显json字符串。 *
@param {Date} date 指定日期
*
@param {String} format
*
@returns {String}
*
@summary 月(M)、日(d)、时辰(h)、分(m)、秒(s)、季度(q) 可以用 1-2
个占位符,
*
年(y)可以用 1-4个占位符,阿秒(S)只可以用 1 个占位符(是 1-3
位的数字)
*
@example (new Date()).Format(“yyyy-MM-dd hh:mm:ss.S”) ==>
2006-07-02
*
08:09:04.423 (new Date()).Format(“yyyy-M-d h:m:s.S”) ==> 2006-7-2
8:9:4.18

if (typeof json !== ‘string’) {
    json = JSON.stringify(json);
} else {
    json = JSON.parse(json);
    json = JSON.stringify(json);
}

*/

等标准完数据将来对字符串进行标记,为了后边的切分、重新组合

formatDate: function(date, format) {
var
o = {

此地有多少个地方要添加标记,包罗大括号、小括号的光景和逗号的末端都要添加标记,我那里运用的是换行\r\n(那样在指令行下测试时听从会相比赏心悦目)。

‘M+’: date.getMonth() + 1, //month

复制代码 代码如下:

‘d+’: date.getDate(), //day

// 在大括号前后添加换行
reg = /([\{\}])/g;
json = json.replace(reg, ‘\r\n$1\r\n’);
// 中括号前后添加换行
reg = /([\[\]])/g;
json = json.replace(reg, ‘\r\n$1\r\n’);
// 逗号前边添加换行
reg = /(\,)/g;
json = json.replace(reg, ‘$1\r\n’);

‘h+’: date.getHours(), //hour

加上完结标记之后就要做一些优化处理,去掉多余的换行、去掉逗号前边的换行,那样做是为了在切分是免得现身空串浪费一遍巡回处理,最终在冒号前面添加空格,看起来更可以。

‘m+’: date.getMinutes(), //minute

复制代码 代码如下:

‘s+’: date.getSeconds(), //second

// 去除多余的换行
reg = /(\r\n\r\n)/g;
json = json.replace(reg, ‘\r\n’);
// 逗号前面的换行去掉
reg = /\r\n\,/g;
json = json.replace(reg, ‘,’);
//冒号前面缩进
reg = /\:/g;
json = json.replace(reg, ‘: ‘);

‘q+’: Math.floor((date.getMonth() + 3) / 3), //quarter
‘S’:
date.getMilliseconds() //millisecond

接下去就是对这一个开头处理过的串举办尤其处理了,我会在function(index,
node) {}函数中添加逻辑,对每一个切分单元举办处理,包涵缩进和美化格式。

};
if
(/(y+)/.test(format)) {

复制代码 代码如下:

format = format.replace(RegExp.$1, (date.getFullYear() + ”).substr(4 –
RegExp.$1.length));

$.each(json.split(‘\r\n’), function(index, node) {});

}
for
( var k in o) {
if
(new RegExp(‘(‘ + k + ‘)’).test(format)) {

先是说下缩进,缩进的方式很简单,蒙受{、[标记时缩进增添1,碰到}、]标记时缩进收缩1,否则缩进量不变。

format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] :
(’00’ + o[k]).substr((” + o[k]).length));

复制代码 代码如下:

}

//这里境遇{、[时缩进等级加1,遇到}、]时缩进等级减1,没际遇时缩进等级不变
if (node.match(/\{$/) || node.match(/\[$/)) {
    indent = 1;
} else if (node.match(/\}/) || node.match(/\]/)) {
    if (pad !== 0) {
        pad -= 1;
    }
} else {
    indent = 0;
}

}

成功缩进后就该美化高亮突显代码了,那里要用到多少个css规则,上面可以看到,对切分单元举行高亮彰显的时候那里用正则举办判定,假使协作到大括号标记为对象class、中括号标记为数组class、属性名称、属性值,三次对这个进展css规则添加,添加完毕将来拼接起来就可以了。

return format;

复制代码 代码如下:

},

.ObjectBrace{color:#00AA00;font-weight:bold;}
.ArrayBrace{color:#0033FF;font-weight:bold;}
.PropertyName{color:#CC0000;font-weight:bold;}
.String{color:#007777;}
.Number{color:#AA00AA;}
.Comma{color:#000000;font-weight:bold;}

//
获取过去的n天

复制代码 代码如下:

getBeforeDay: function(date, days) {
var
date = date || new Date();

//添加代码高亮
node = node.replace(/([\{\}])/g,”<span
class=’ObjectBrace’>$1</span>”);
node = node.replace(/([\[\]])/g,”<span
class=’ArrayBrace’>$1</span>”);
node = node.replace(/(\”.*\”)(\:)(.*)(\,)?/g,”<span
class=’PropertyName’>$1</span>$2$3$4″);
node = node.replace(/\”([^”]*)\”(\,)?$/g,”<span
class=’String’>\”$1\”</span><span
class=’Comma’>$2</span>”);
node = node.replace(/(-?\d+)(\,)?$/g,”<span
class=’Number’>$1</span><span
class=’Comma’>$2</span>”);

return new Date(Date.parse(date.toString()) – 86400000 *
days);

最后我们看看完整的不二法门代码(那里自己动用了jquery类库),以及测试地方:

},

要对jsonstr举办美化,那样就足以了APP.format(jsonstr),直接出口至<pre></pre>标签中就可以看来效用,

//
查询字符串

上边是一个测试地点,
能够进去试一下,看看完整的源代码

getQueryString: function(name) {
var
reg = new RegExp(“(^|&)” + name + “=([^&]*)(&|$)”, “i”);
var
r = window.location.search.substr(1).match(reg); //
获取url中”?”符后的字符串并正则匹配
var
context = “”;
if
(r != null) {

复制代码 代码如下:

context = r[2];

<script>
    var APP=function(){
        var format=function(json){
            var reg=null,
                result=”;
                pad=0,
                PADDING=’    ‘;
            if (typeof json !== ‘string’) {
                json = JSON.stringify(json);
            } else {
                json = JSON.parse(json);
                json = JSON.stringify(json);
            }
            // 在大括号前后添加换行
            reg = /([\{\}])/g;
            json = json.replace(reg, ‘\r\n$1\r\n’);
            // 中括号前后添加换行
            reg = /([\[\]])/g;
            json = json.replace(reg, ‘\r\n$1\r\n’);
            // 逗号后边添加换行
            reg = /(\,)/g;
            json = json.replace(reg, ‘$1\r\n’);
            // 去除多余的换行
            reg = /(\r\n\r\n)/g;
            json = json.replace(reg, ‘\r\n’);
            // 逗号前边的换行去掉
            reg = /\r\n\,/g;
            json = json.replace(reg, ‘,’);
            //冒号前面缩进
            reg = /\:/g;
            json = json.replace(reg, ‘: ‘);
            //对json依照换行进行切分然后处理每一个小块
            $.each(json.split(‘\r\n’), function(index, node) {
                var i = 0,
                    indent = 0,
                    padding = ”;
               
//那里蒙受{、[时缩进等级加1,遭逢}、]时缩进等级减1,没遭逢时缩进等级不变
                if (node.match(/\{$/) || node.match(/\[$/)) {
                    indent = 1;
                } else if (node.match(/\}/) || node.match(/\]/)) {
                    if (pad !== 0) {
                        pad -= 1;
                    }
                } else {
                    indent = 0;
                }
                   //padding保存实际的缩进
                for (i = 0; i < pad; i++) {
                    padding += PADDING;
                }
                //添加代码高亮
                node = node.replace(/([\{\}])/g,”<span
class=’ObjectBrace’>$1</span>”);
                node = node.replace(/([\[\]])/g,”<span
class=’ArrayBrace’>$1</span>”);
                node =
node.replace(/(\”.*\”)(\:)(.*)(\,)?/g,”<span
class=’PropertyName’>$1</span>$2$3$4″);
                node = node.replace(/\”([^”]*)\”(\,)?$/g,”<span
class=’String’>\”$1\”</span><span
class=’Comma’>$2</span>”);
                node = node.replace(/(-?\d+)(\,)?$/g,”<span
class=’Number’>$1</span><span
class=’Comma’>$2</span>”);
                result += padding + node + ‘<br>’;
                pad += indent;
            });
            return result;
        };
        return {
            “format”:format,
        };
    }();
</script>

}
reg
= null;
r =
null;

如何,json字符串是或不是雅观了不少呢,超级实用吧,这么好的东东,当然不可能独享,那里推荐给小伙伴们。

return (context == null || context == “” || context == “undefined”) ? “”
: context;

您可能感兴趣的文章:

  • String字符串匹配javascript
    正则表明式
  • JS使用正则表明式除去字符串中再次字符的措施
  • javascript正则表明式和字符串RegExp and
    String(一)
  • js
    正则表达式学习笔记之匹配字符串
  • js将字符串转成正则表明式的落到实处格局
  • javascript中应用正则表达式举办字符串验证示例
  • javascript中接纳正则表达式实现删除字符串中的前后空格
  • 用正则表明式判断字符串是汉字仍然拼音的js函数代码
  • JS正则表明式提取字符串中享有汉字的脚本
  • JavaScript利用正则表明式替换字符串中的内容

},

//
删除空白字符串

delBlankSpace: function(str) {
var
str = str.replace(/<\/?[^>]*>/gim, “”);//
去掉所有的html标记
var
result = str.replace(/(^\s+)|(\s+$)/g, “”);// 去掉前后空格

return result.replace(/\s/g, “”);// 去除小说中间空格

},

//
判断参数非空

validateBlank: function(tmp) {
if
(!tmp && typeof (tmp) != “undefined” && tmp != 0) {
//
null

return;
}
else if (typeof (tmp) == “undefined”) {
//
undefined

return;
}
else if (Array.isArray(tmp) && tmp.length === 0) {
//
空数组

return;
}
else if ($.trim(tmp) == “”) {
//
空串

return;
}
else if (Object.prototype.isPrototypeOf(tmp) && Object.keys(tmp).length
=== 0) {
//
空对象

return;
}
else {

return tmp;

}

},

//
检测段落里空格和换行,转换成html输出

blankRegExp: function(str) {
if
(typeof str != “string”)

return “”;

return this.htmlEncode(str).replace(/\r{0,}\n/g,
‘<br/>’);

},

//
转义html为平安文件

htmlEncode: function(str) {

//多个replace会有bug

//return str.replace(/&/g, “&”).replace(/</g,
“<“).replace(/>/g, “>”).replace(/\”/g,
“"”).replace(/\’/g, “'”).replace(/ /g, ” “);
var
html_encodes = {
‘&’:
‘&’,

‘<‘: ‘<‘,

‘>’: ‘>’,
‘”‘:
‘"’,
“‘”:
“'”,
‘ ‘:
‘ ‘

};

return str.replace(/(&|<|>|\”|\’| )/g, function(str, item)
{

return html_encodes[item];

});

},

//正则解码

htmlDecode: function(str) {
var
html_decodes = {

‘&’:’&’,

‘<‘:'<‘,

‘>’:’>’,

‘"’:'”‘,

“'”:”‘”,

‘ ‘:’ ‘

};

return str.replace(/(&|<|>|"|'| )/g,
function(str, item) {

return html_decodes[item];

});

},

/*用浏览器内部转换器完毕html转码*/

HTMLEncode:function (html){

//1.先是动态创立一个器皿标签元素,如DIV
var
temp = document.createElement (“div”);

//2.然后就要更换的字符串设置为这么些元素的innerText(ie帮衬)或者textContent(火狐,google协助)

(temp.textContent != undefined ) ? (temp.textContent = html) :
(temp.innerText = html);

//3.末段回到这一个元素的innerHTML,即取得通过HTML编码转换的字符串了
var
output = temp.innerHTML;
temp
= null;

return output;

},

/*用浏览器内部转换器完结html解码*/

HTMLDecode: function(input) {
var
converter = document.createElement(“DIV”);

converter.innerHTML = input;
var
output = converter.innerText;

converter = null;

return output;

},

//
裁剪文字,显示…

cutText: function(str, maxLength, showEllipsis) {
if
(str.length > maxLength) {
str
= str.substr(0, maxLength);
if
(showEllipsis) {
str
+= “…”;

}

}

return str;

},

//
判断微信内置浏览器

isWeixin: function() {
var
ua = navigator.userAgent.toLowerCase();

return (ua.match(/MicroMessenger/i) == “micromessenger”);

},

//
[Hack]修改iOS微信浏览器的title

setTitle: function(t) {

document.title = t;
var
i = document.createElement(‘iframe’);

i.src = ‘//m.baidu.com/favicon.ico’;

i.style.display = ‘none’;

i.onload = function() {

setTimeout(function() {

i.remove();
},
9);

}

document.body.appendChild(i);

},

//
微信分享

shareToWeiXin: function(param, success, cancel, mSuccess, mCancel)
{
var
self = this;
//
this.getContent(utils.getQueryString(“infoId”),utils.getQueryString(‘salesmanId’));

var
url = location.href.split(‘#’)[0];

alert(‘验证签名url == ‘ + url)

alert(‘分享参数param==’ + JSON.stringify(param));

$.ajax({
url:
‘/plug/do/common/weixin/genWxConfig’,

type: ‘post’,

data: {
url:
url,

authType: ‘1’

},

dataType: ‘json’,

success: function(data) {
if
(data && data.resultCode === ‘000’) {
var
config = data.data.config;

config.debug = true;

config.jsApiList = [ ‘checkJsApi’, ‘showMenuItems’,
‘onMenuShareAppMessage’, ‘onMenuShareTimeline’ ];

wx.config(config);

wx.ready(function() {

wx.showMenuItems({

menuList: [ “menuItem:share:appMessage”, “menuItem:share:timeline”
]

});

wx.onMenuShareAppMessage({//分享朋友

title: param.infoTitle,

desc: param.infoSummary, // 分享描述

imgUrl: param.imgUrl,

link: param.link, // 分享链接

success: function() {

success && success();

},

cancel: function() {

cancel && cancel();

}

});

wx.onMenuShare提姆eline({//分享朋友圈

title: param.infoTitle,

desc: param.infoSummary, // 分享描述

imgUrl: param.imgUrl,

link: param.link, // 分享链接

success: function() {

mSuccess && mSuccess();

},

cancel: function() {

mCancel && mCancel();

}

});

});

wx.error(function(res) {

alert(‘error :’ + JSON.stringify(res));

});

}

},

error: function(err) {

alert(“err:” + JSON.stringify(err))

console.log(‘请求页面报错: ‘ + err);

}

});

},

//
微信授权

getUserInfo: function(success) {
var
self = this;
var
url = location.href;
var
wxCode = utils.getQueryString(“code”);

alert(‘wxCode==’ + wxCode);

Backbone.ajax({
url:
‘/plug/do/A2ATApp/saveCustomerInfo’,

dataType: “JSON”,

type: “post”,

data: {

code: wxCode,

operationSystem: ‘IOS-test’,

network: ‘4G-test’,

operatorType: ‘operatorType’,

models: ‘models’,

appVersion: ‘appVersion’

},

success: function(data) {
if
(data && data.resultCode == ‘000’) {

success && success();
}
else {

alert(‘userInfo=’ + JSON.stringify(data));

}

},

error: function(e) {

alert(‘error==’ + JSON.stringify(e));

}

});

},

//
获取页面停留时间,着重jquery.cookie.js

countStayTime: function() {
var
second = 0;

window.setInterval(function() {

second++;
},
1000);
var
tjArr = localStorage.getItem(“jsArr”) ? localStorage.getItem(“jsArr”) :
‘[{}]’;

$.cookie(‘tjRefer’, getReferrer(), {

expires: 1,

path: ‘/’

});

window.onbeforeunload = function() {
if
($.cookie(‘tjRefer’) == ”) {
var
tjT = eval(‘(‘ + localStorage.getItem(“jsArr”) + ‘)’);
if
(tjT) {

tjT[tjT.length – 1].time += second;
var
jsArr = JSON.stringify(tjT);

localStorage.setItem(“jsArr”, jsArr);

}
}
else {
var
tjArr = localStorage.getItem(“jsArr”) ? localStorage.getItem(“jsArr”) :
‘[{}]’;
var
dataArr = {

‘url’: location.href,

‘time’: second,

‘refer’: getReferrer() || document.referrer,

‘timeIn’: Date.parse(new Date()),

‘timeOut’: Date.parse(new Date()) + (second * 1000)

};

tjArr = eval(‘(‘ + tjArr + ‘)’);

tjArr = JSON.stringify(dataArr);

localStorage.setItem(“jsArr”, tjArr);

}
var
standTime = (JSON.parse(localStorage.getItem(‘jsArr’))).time;

return standTime; //单位:s

};

},

//
获取前一个页面的url

getReferrer: function() {
var
referrer = ”;
try
{

referrer = window.top.document.referrer;
}
catch (e) {
if
(window.parent) {
try
{

referrer = window.parent.document.referrer;
}
catch (e2) {

referrer = ”;

}

}

}
if
(referrer === ”) {

referrer = document.referrer;

}

return referrer;

},

//屏蔽alert 弹框

noAlert : function(){

//if(true) return

window.alert = function(str) {

return;

};

},

};

//event事件
var EventUtil={

   addHandler:function(element,type,handler){ //添加事件
      if(element.addEventListener){ 
         element.addEventListener(type,handler,false);  //使用DOM2级方法添加事件
      }else if(element.attachEvent){                    //使用IE方法添加事件
         element.attachEvent("on"+type,handler);
      }else{
         element["on"+type]=handler;          //使用DOM0级方法添加事件
      }
   },  

   removeHandler:function(element,type,handler){  //取消事件
      if(element.removeEventListener){
         element.removeEventListener(type,handler,false);
      }else if(element.detachEvent){
         element.detachEvent("on"+type,handler);
      }else{
         element["on"+type]=null;
      }
   },

   getEvent:function(event){  //使用这个方法跨浏览器取得event对象
      return event?event:window.event;
   },

   getTarget:function(event){  //返回事件的实际目标
      return event.target||event.srcElement;
   },

   preventDefault:function(event){   //阻止事件的默认行为
      if(event.preventDefault){
         event.preventDefault(); 
      }else{
         event.returnValue=false;
      }
   },

   stopPropagation:function(event){  //立即停止事件在DOM中的传播
                                     //避免触发注册在document.body上面的事件处理程序
      if(event.stopPropagation){
         event.stopPropagation();
      }else{
         event.cancelBubble=true;
      }
   },

   getRelatedTarget:function(event){  //获取mouseover和mouseout相关元素
      if(event.relatedTarget){
         return event.relatedTarget;
      }else if(event.toElement){      //兼容IE8-
         return event.toElement;
      }else if(event.formElement){
         return event.formElement;
      }else{
         return null;
      }
   },

   getButton:function(event){    //获取mousedown或mouseup按下或释放的按钮是鼠标中的哪一个
      if(document.implementation.hasFeature("MouseEvents","2.0")){
         return event.button;
      }else{
         switch(event.button){   //将IE模型下的button属性映射为DOM模型下的button属性
            case 0:
            case 1:
            case 3:
            case 5:
            case 7:
               return 0;  //按下的是鼠标主按钮(一般是左键)
            case 2:
            case 6:
               return 2;  //按下的是中间的鼠标按钮
            case 4:
               return 1;  //鼠标次按钮(一般是右键)
         }
      }
   },

   getWheelDelta:function(event){ //获取表示鼠标滚轮滚动方向的数值
      if(event.wheelDelta){
         return event.wheelDelta;
      }else{
         return -event.detail*40;
      }
   },

   getCharCode:function(event){   //以跨浏览器取得相同的字符编码,需在keypress事件中使用
      if(typeof event.charCode=="number"){
         return event.charCode;
      }else{
         return event.keyCode;
      }
   }

};
网站地图xml地图