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