您的位置:首页 > Web前端 > JavaScript

event事件相关和window对象json字符串对象之间转换

2017-10-10 11:20 423 查看
阻止浏览器默认行为的兼容写法:
event.preventDefault ?  event.preventDefault() : (event.returnValue = false)


阻止冒泡兼容写法:
event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true)


获得event对象的兼容写法:
event || (event = window.event)


获得target对象的兼容写法:
event.target || event.srcElement


cancelable 事件返回一个布尔值。如果用 preventDefault() 方法可以取消与事件关联的默认动作,则为 true,否则为 fasle。可以用来判断是否是非ie浏览器

if(event.cancelable) event.preventDefault else event.returnValue = false


if (event.cancelable) {

event.stopPropagation();// 其他浏览器取消事件冒泡

} else {

event.cancelBubble = true;// IE取消事件冒泡

}

检测事件是否是 cancelable 事件(IE 浏览器不支持)

window.location.reload() 刷新
window.history.go(1) 前进
window.history.go(-1) 返回加刷新
window.history.forward() 前进
window.history.back() 返回


在JS中将JSON的字符串解析成JSON数据格式:
var  result = eval('('+data+')');
但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。
 http://www.json.org/ 提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。


字符串转换为json对象:
var str = '{"name":"huangxiaojian","age":"23"}'//单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。
(1)JSON.parse(str)
结果:
Object
age: "23"
name: "huangxiaojian"
__proto__: Object
(2)它的典型应用就是在JQUERY中的AJAX方法下的success对于返回数据data的解析
var json='{"name":"CJ","age":18}';
data = (new Function("","return "+json))();
data打印结果:{name: "CJ", age: 18}
age:18
name:"CJ"
__proto__:Object

json对象转换为字符串
var a = {a:1,b:2}
JSON.stringify(a)
结果:
"{"a":1,"b":2}"
注意:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: