随笔分类 -  JS

记录项目中遇到js兼容方面的问题
摘要:w3c事件流: 从根文档(html)开始遍历所有子节点,如果目标事件的父节点设置为捕获时触发,则执行该事件,直到目标被执行,然后再事件冒泡(设置为捕获时触发的事件不再被执行)。ie事件流: 从目标事件被执行,然后再冒泡父节点的事件,直到根文档。捕获时触发事件:<!DOCTYPE html><html> <head> <title>test event</title> </head> <body> <input id=btn1 type=button value=点击 /> <script> 阅读全文
posted @ 2013-02-26 15:47 microsoft_kk 阅读(2299) 评论(0) 推荐(1)
摘要:readystatus 1:正在加载,2:加载完毕,3:正在处理;4:处理完毕。status 200:成功响应status表示的是请求的状态码,readystatus是响应的状态码readystatus 状态为3时处理数据,可以实现ajax的长连接(仅ff支持). 阅读全文
posted @ 2013-02-21 18:06 microsoft_kk 阅读(226) 评论(0) 推荐(0)
摘要:csrf (Cross-site request forgery) 伪造请求会话、cookie注入 1.可以通过document.cookie="JSESSIONID=123456789"; //设置tomcat默认的会话cookie名称,值为要注入的会话cookie 2.直接登陆url,就拿到了另一个会话。防范方法: 1.检查http头的referer (这个值也可以伪造) 2.检查客户端IP(如果功击者和被害者通过同一路由上网公网IP一样) 3.添加token,每请求一次更改一次服务端token,token还可以防止重复提交。xss (cross site scrip. 阅读全文
posted @ 2013-01-29 15:18 microsoft_kk 阅读(303) 评论(0) 推荐(0)
摘要:var a=b=0; var object={ a:'a', b:'b', c:function(){ return this.a; }, //function内可以访问到平级变量的值和外部的值。 d:function(){ return this.b; } } alert(object.c()); //根据就近原则,显示的值为a。var a=b=0;var object={ a:'a', b:'b', c:function(){ return this.a; }, //function内可以访问到平级变量的值和外部的值。 d:f 阅读全文
posted @ 2013-01-29 11:51 microsoft_kk 阅读(279) 评论(0) 推荐(0)
摘要:http://open.chrome.360.cn/http://kodango.com/content-scritps-develop-in-google-chromehttp://blog.isoft8.com/archives/833 阅读全文
posted @ 2013-01-18 13:52 microsoft_kk 阅读(155) 评论(0) 推荐(0)
摘要:function getSelectText() { return document.selection && document.selection.createRange().text || window.getSelection && window.getSelection() || document.getSelection && document.getSelection() || '';} 阅读全文
posted @ 2012-12-31 18:11 microsoft_kk 阅读(209) 评论(0) 推荐(0)
摘要:var str="abaasdffggghhjjkkgfddsssss"; //查出str中每个字母的个数,以及出现次数最多的字母次数var c=new Array();var i=0;while(str.charAt(0)){ c[i]=str.charAt(0)+'='+(str.split(str.charAt(0)).length-1); str=str.split(str.charAt(0)).join(''); i++;}alert(c);for(var j=0,m=0;j<c.length;j++){ if(m<=c 阅读全文
posted @ 2012-12-24 15:34 microsoft_kk 阅读(349) 评论(0) 推荐(0)
摘要:1. png透明: 使用png8的索引色透明图片在ie6下正常显示2. "猪"字被溢出<div style="width:400px"><div style="float:left"></div><!-- --><div style="float:right;width:400px">↓这就是多出来的那只猪</div></div> 解决办法: 1.不使用<!-- --> 2.去掉固定宽度 3.用新的元素包裹 4.disp 阅读全文
posted @ 2012-12-24 14:50 microsoft_kk 阅读(346) 评论(0) 推荐(0)
摘要:1.可点击的都应该是链接不要给除锚元素(<a>)以外的元素绑定click事件。这一点对于键盘用户很重要,因为他们在仅通过键盘获取元素焦点时会遇到困难。不过个人感觉锚元素还是应该只用作链接,而一些功能性的操作(比如Google Reader的Mark all as new),最好还是用<span>来标注,accessibility的问题可以通过快捷键等方式解决。这样做可以更好的还原HTML元素的语义。2.简单的for循环优化for ( var i = 0, j = elements.length; i < j; ++i )3.用匿名函数来作为事件处理程序尤其是对于短 阅读全文
posted @ 2012-12-20 15:37 microsoft_kk 阅读(266) 评论(0) 推荐(0)
摘要:function isOverlap(idOne,idTwo){ var objOne=$("#"+idOne), objTwo=$("#"+idTwo), offsetOne = objOne.offset(), offsetTwo = objTwo.offset(), topOne=offsetOne.top, topTwo=offsetTwo.top, leftOne=offsetOne.left, leftTwo... 阅读全文
posted @ 2012-12-13 17:22 microsoft_kk 阅读(1493) 评论(0) 推荐(0)
摘要:函数无明确返回值时,返回的值是undefinedundefined表示对象已经声明,没有赋值.null表明对象不存在(null == undefined)强制转换为boolean类型时,undefined、null、空字符串、0都返回false,其它的返回true;在进行逻辑运算时,如果运算数不是原始Boolean类型,则返回对象。== 和 === 区别是 ==在比较前会进行自动类型转换,而===不会进行类型转换with语句是运行缓慢的代码段,尽量少用java 与 js 中switch 的区别: js中switch case可以用字符串也可以用不是常是的值js中可以声明两个函数名一样的函数而不 阅读全文
posted @ 2012-11-21 18:03 microsoft_kk 阅读(447) 评论(0) 推荐(0)
摘要:chrome版本: 24.0.1312.5js代码: <input id="remove" onclick="remove();" type="button" value="移除"/>在chrome点击按钮后 按钮本身移除了,而我并没有编写remove函数. 感觉很奇怪,于是用了以下代码:<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8&q 阅读全文
posted @ 2012-11-16 15:47 microsoft_kk 阅读(781) 评论(0) 推荐(0)
摘要:盒模型的组成:margin+border+padding+content在ie中: width = border+padding+content在W3C(firefox)中: width = content统一解决方案: 添加"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">" 到html顶部查看当前页面采用哪个模型方式解析盒模型: 阅读全文
posted @ 2012-09-24 15:58 microsoft_kk 阅读(208) 评论(0) 推荐(0)
摘要:1.iframe与jQuery iframe与jQuery的关系十分简单。只要理解了一点,即可完全搞清楚:jQuery,$是页面上的一个js对象,即window的一个普通对象,获得这个jQuery对象后,就可以进行操作了。jQuery对象属于页面,如果要访问iframe页面的jQuery对象,首先要保证能够访问子页面的的对象,就是要满足父页面与子页面同域。当然iframe页面也要引入jquery.js。通常是以下写法: 1.在父页面访问子页面的jQuery对象。window.frames["xxxIframe"].$("#top"),表示访问子页面的to 阅读全文
posted @ 2012-09-21 16:15 microsoft_kk 阅读(304) 评论(0) 推荐(0)
摘要:1.跟定位相关的属性 width //这几个就不多讲了 height left top offsetWidth //网页宽度 offsetHeight //网页高度 offsetLeft //相对父元素的左偏移,不同浏览器计算方式不一样 offsetTop //相对父元素的右偏移 clientWidth //document.documentElement.clientWidth 网页宽度,也就是滚动条中可拖动的条子的长度 clientHeight //网页的高度(包含滚动条的高) client... 阅读全文
posted @ 2012-09-20 18:50 microsoft_kk 阅读(470) 评论(0) 推荐(0)
摘要:1.获取元素的实际的CSS层叠最后的样式(currentStyle、getComputedStyle) alert(oDiv.currentStyle.width);//IE,currentStyle保留原来定义在CSS中的单位 alert(window.getComputedStyle(oDiv,null).width);//W3C DOM,并且总是返回计算后的像素值 //另外,两种方式都不能获取那些CSS简写方式定义的,下面两个都会输出空 alert(oDiv.currentStyle.background); alert(getComputedStyle(o... 阅读全文
posted @ 2012-09-20 16:42 microsoft_kk 阅读(445) 评论(0) 推荐(0)
摘要:1.取得事件对象及取得事件目标对象 document.onclick =function (evt) { evt = evt || window.event;//在IE中evt会是undefined //而支持W3C DOM事件的浏览器中事件对象将会作为事件处理函数的第一个参数 var targetElement = evt.target || evt.srcElement; //IE中事件对象没有target属性 };2.添加事件 function addEvent(obj,evtype,fn,useCapture) ... 阅读全文
posted @ 2012-09-20 16:17 microsoft_kk 阅读(296) 评论(0) 推荐(0)
摘要:window objectdocument 对象frames 对象history 对象location 对象navigator 对象screen 对象一般所说的DOM是指XML DOM,而W3C也为HTML页面提供了更快捷的DOM——HTML DOM!使用HTML DOM,能使访问HTML标签的属性就像访问JavaScript创建的对象的属性一样简单var bodyTag = document.documentElement.lastChild;//DOM标准方式 bodyTag = document.body;//HTML DOM方式 var titleTag = documen... 阅读全文
posted @ 2012-09-20 15:09 microsoft_kk 阅读(574) 评论(0) 推荐(0)
摘要:function setCookie(name,value)//两个参数,一个是cookie的名子,一个是值{ var Days = 30; //此 cookie 将被保存 30 天 var exp = new Date(); //new Date("December 31, 9998"); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTStri 阅读全文
posted @ 2012-08-28 11:25 microsoft_kk 阅读(222) 评论(0) 推荐(0)
摘要:通过地址栏方式给后台传中文参数时会出现乱码,我们可以在后台通过new String(props.getBytes("iso-8859-1"),"utf-8)方式转码。还可以通过encodeURI(encodeURI("帐号"))方式将中文参数转换为uri编码,为什么要使用2次encodeURI呢?原因是:encodeURI("帐号")后参数将会变成%X%X%X%X,发送get请求时浏览器会把地址栏的参数decodeURI("%X%X%X%X"),相当于又还原成了中文,所以后台接受到的还是被iso-8859 阅读全文
posted @ 2012-08-14 14:34 microsoft_kk 阅读(1213) 评论(0) 推荐(1)