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

阻止浏览器默认行为的兼容写法: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。 

页面之间传参:

1.传 对象数据
var parentParams = {
a:1,
b:2
}
‘alertLog.html?parentParams=’+ encodeURI(JSON.stringify(parentParams));
另一个页面:
var parentParams = getUrlParamObj().parentParams;
parentParams = JSON.parse(decodeURI(parentParams));

function getUrlParamObj () {
  var name, value, str, num, arr
  var retObj = {}
  str = location.href.substr(location.href.indexOf('?') + 1)
  arr = str.split('&') //各个参数放到数组里
  for (var i = 0; i < arr.length; i++) {
    num = arr[i].indexOf('=')
    if (num > 0) {
      name = arr[i].substring(0, num)
      value = arr[i].substr(num + 1)
      retObj[name] = value
    }
  }
  return retObj
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值