摘要: textContent与innerText的不同IE下有个innerText属性,FF下有个textContent属性。很多以前给IE写脚本的,在FF下找不到innerText属性,于是网上搜到的建议是用textContent来替代。反之给FF写脚本的也一样。但是实际上,这里有个误解。网上很多文章说“FF下等效于innerText属性的属性是textContent”————但是事实上并非如此。innerText与textContent有几点很重要的不同,导致它们在一些情况下不能直接互换使用。前些日子写了个代码高亮JS插件,在IE下工作完全正常,而在FF下就不对头。在IE下使用的是innerTe 阅读全文
posted @ 2013-07-01 17:37 Laborc_L 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 参见https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach针对每个数组元素绑定一个回调函数:1 var charSets = new Array('ab','bb','cd','ab','cc','ab','dd');2 3 function replaceElement(element, index, array){4 if(element == ' 阅读全文
posted @ 2013-05-14 13:43 Laborc_L 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 数组:var arrObject = new Array('val1', 'val2'); //作为对象的数组var arrLiteral = ['val1', 'val2']; //数组直接量对于开发者,没有区别:在直接量和对象上都可以调用一个Array方法。对于javascript引擎来说,每次访问数组直接量的时候,必须重新解释它,特别是在一个函数调用中使用它的时候。数组直接量代替了临时变量的需要,尤其是当向一个函数发送值的时候。 阅读全文
posted @ 2013-05-14 13:43 Laborc_L 阅读(112) 评论(0) 推荐(0) 编辑
摘要: //获取表单元素的名称和值function getValue(){ var elems = document.getElementById('picker').elements; var elemArray = new Object(); for(var i = 0; i < elems.length; i++){ if(elems[i].type == 'text'){ elemArray[elems[i].id] = elems[i].value; } } checkVals(elemArray); return false;}//检查值functio 阅读全文
posted @ 2013-05-12 23:15 Laborc_L 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 参见https://developer.mozilla.org/en-US/docs/JavaScript/Reference/global_objects/array/indexofarray.indexOf(searchElement[, fromIndex])接受一个搜索值(searchElement),将其与数组(array)中的每个元素比较。如果找到该值,返回表示该数组元素的一个索引。如果没有找到,返回-1。由于IE8不支持indexof,Mozilla针对这一函数的解决方案: 1 if (!Array.prototype.indexOf) { 2 Array.prototype.i 阅读全文
posted @ 2013-05-09 22:56 Laborc_L 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 介绍IE中很多奇怪的渲染问题可以通过赋予其“layout”得到解决。这些 bug 可以通过赋予相应元素某个宽度或高度解决。这便引出关于“layout”的一个问题:为什么它会改变元素的渲染特性,为什么它会影响到元素之间的关系?定义“layout”是一个IE/WIN的私有概念,决定了一个元素如何显示以及约束其包含的内容、如何与其他元素交互和建立联系、如何响应和传递应用程序事件/用户事件等。这种渲染特性可以通过某些CSS属性被不可逆转地触发。而有些HTML元素则默认就具有“layout”。PS:一个对象的layout属性被激活,它的具体表现就是haslayout=true。我们可以用IE Devel 阅读全文
posted @ 2013-05-09 17:07 Laborc_L 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 其实如果完全掌握了this的工作原理,自然就不会走进这些坑。来看下以下这些情况中的this分别会指向什么:1.全局代码中的thisalert(x);// 全局变量x值为2全局范围内的this将会指向全局对象,在浏览器中即使window。2.作为单纯的函数调用function fooCoder(x) { this.x = x;}fooCoder(2);alert(x);// 全局变量x值为2这里this指向了全局对象,即window。在严格模式中,则是undefined。3.作为对象的方法调用var name = "clever coder";var person = { n 阅读全文
posted @ 2013-05-09 10:20 Laborc_L 阅读(115) 评论(0) 推荐(0) 编辑
摘要: slice的一个方便的用法:把函数参数属性转换为一个正确的数组;var args = Array.prototype.slice.call(arguments);以下内容来自肥杜http://www.cnblogs.com/littledu/archive/2012/05/19/2508672.html我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换)如:1 var a={length:2,0:'first& 阅读全文
posted @ 2013-05-09 00:53 Laborc_L 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 网上流传比较广的图示:网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth (包括边线的宽)网页可见区域高:document.body.offsetHeight (包括边线的宽)网页正文全文宽:document.body.scrollWidth网页正文全文高:document.body.scrollHeight网页被卷去的高:document.body.scrollTop网页被卷去的左:document.body.scrollLeft网页正文部分上 阅读全文
posted @ 2013-05-08 16:26 Laborc_L 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 1.创建一个嵌套节点,让外层节点产生滚动条。2.用offsetWidth - clientWidth 即可获得滚动条宽度。为了避免页面抖动,可以设置外层元素position:absolute和visibility:hidden代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://w 阅读全文
posted @ 2013-05-08 15:25 Laborc_L 阅读(243) 评论(0) 推荐(0) 编辑