1. Json to String
JSON.stringify(jsonobj)//(IE8+,Chrome 1+,FF 3+) //参考
2. 页面刷新location.reload()和location.href=location.href
前者相当于页面右键刷新/F5/刷新按钮;后者相当于浏览器地址栏回车。
3. 0==""
一定要注意,0=="" 在js里是true的。
4. 调用iframe
document.getElementById("fileUpFrame").contentWindow.document.form.file.click();
fileUpFrame.document.form.file.click(); frames["fileUpFrame"].document.form.file.click();5. 无刷新上传文件
var fraFileInput=fraForm.file;
fraFileInput.οnchange=function(){ var fileName=this.value; fraForm.submit.click(); } fraFileInput.click();注册file的onchange事件一定要在.click代码之前,否则ie有可能会注册不上onchange事件.
6. IE的键盘事件
ie6 7 8 在window上注册的键盘事件无效,只能注册到document上;
ie9+及其他浏览器window.onkeydown事件晚于document.onkeydown事件;
ie8- document.οnkeydοwn=function (e){没有传入事件对象,需要window.event}
7. IE6-7 字符串处理问题
不支持使用数组的下标方法 txt[n]获取字符,需要使用txt.substr(n,1);
8. 获取鼠标在div(div#box>div.one*5) 内的偏移
假设各层都是offset定位元素,并且鼠标事件发生在其中一个div.one上,可以有两种方法
(1)加法: 鼠标事件在div.one的偏移+div.one在div#box的偏移 e.offsetX+(div.one).offsetX 代码大致如下function getOffsetInParent(ele,parent){ //js ele var x=0,y=0; while(ele && ele!=parent){ x+=ele.offsetLeft; y+=ele.offsetTop; ele=ele.offsetParent; } return {x:x,y:y};}
(2)减法:
e.pageX-[(div#box).offsetLeft+div#box相对body的offsetLeft] 祝:因为pad等移动端的touch事件没有e.offsetX属性,所以兼容性的方案是使用减法。9.获取当前视口高度 document.documentElement.clientHeight 和window.innerHeight(IE9+)。 绝大多数情况下,上面两种方法的返回值是一样的,但是在chrome中,如果doctype html外面存在script或者其他标签时,documentElement.clientHeight的返回值会>视口高度。