随笔分类 -  javascript(转载)

摘要:1.Javascript 数组API//定义数组varpageIds=newArray();pageIds.push('A');数组长度pageIds.length;//shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefinedvara=[1,2,3,4,5];varb=a.shift();//a:[2,3,4,5]b:1//unshift:将参数添加到原数组开头,并返回数组的长度vara=[1,2,3,4,5];varb=a.unshift(-2,-1);//a:[-2,-1,1,2,3,4,5]b:7//注:在IE6.0下测试返回值总为undef 阅读全文
posted @ 2012-05-08 21:36 蝌蚪归来 阅读(202) 评论(0) 推荐(0)
摘要:今天在网上看到了一个有意思的js题目,就拿去和同事讨论。本来以为是一个很简单的问题,但越讨论越深入,逐步认识到了这个问题的深度。题目是这样的:Java代码functionf1(){alert(1); } functionf2(){alert(2); } varf3=f1.call; f3.call(f2);function f1(){ alert(1);}function f2(){ alert(2);}var f3 = f1.call;f3.call(f2);讨论的过程就不在赘述了,最后的结论是:1 Function.prototype.call 实现的时候与是依赖与this的,如果直接.. 阅读全文
posted @ 2012-04-11 10:03 蝌蚪归来 阅读(525) 评论(0) 推荐(0)
摘要:1. document.formName.item("itemName") 问题说明:IE下,可以使用document.formName.item("itemName")或document.formName.elements["elementName"];Firefox下,只能使用document.formName.elements["elementName"].解决方法:统一使用document.formName.elements["elementName"].2.集合类对象问题说明:IE下, 阅读全文
posted @ 2012-04-11 01:46 蝌蚪归来 阅读(258) 评论(0) 推荐(0)
摘要:今天看了 oneroom的 【javascript数字数组去重复项】觉得挺有意思的。顺便把我以前在看的对比一下。也算是做个备份。第一种:也是最笨的吧。?123456789101112Array.prototype.unique1 = function () {var r = new Array();label:for(var i = 0, n = this.length; i < n; i++) {for(var x = 0, y = r.length; x < y; x++) {if(r[x] == this[i]) {continue label;}}r[r.length] = 阅读全文
posted @ 2012-04-01 21:27 蝌蚪归来 阅读(266) 评论(0) 推荐(0)
摘要:当输入框(input/textarea)获得焦点时,将焦点移动到最后,在某些情况下用户体验很好。网上的大部分方法都是针对IE浏览器的。代码如下:varel =document.getElementById('txtArticle');varrange = el.createTextRange();range.moveStart('character', el.value.length);range.collapse(false);range.select();其实可以将moveStart这行删除,因为createTextRange方法创建range后,利用col 阅读全文
posted @ 2011-11-02 14:02 蝌蚪归来 阅读(253) 评论(0) 推荐(0)
摘要:1、Javascript弹出子窗口可以通过多种方式实现,下面介绍几种方法(1) 通过window对象的open()方法,open()方法将会产生一个新的window窗口对象//IE7里不支持其用法为:window.open(URL,windowName,parameters);URL: 描述要打开的窗口的URL地址,如何为空则不打开任何网页;windowName:描述被打开的窗口的民称,可以使用'_top'、'_blank'等内建名称,这里的名称跟<a href="..." target="...">里的tar 阅读全文
posted @ 2011-11-01 16:21 蝌蚪归来 阅读(832) 评论(0) 推荐(0)
摘要:这里的主要测试不是指生成数据时的速度,指的是匹配速度,例如我这里的匹配速度我测的10000条数据,有效数据为1000-1100条,输出复杂的HTML,速度为360ms左右,方法为 正则匹配Match(有循环)希望贴出您的测试数据。行innerHTML和insertAdjacentHTML速度的测试,比均结果相差不会大于20ms(平均速度),在IE中insertAdjacentHTML速度还是很快的,在Mozilla下是得不偿失的。可以点击这里进行简单的匹配测试点击这里进行innerHTML和insertAdjacentHTML速度的测试,可以兼容Mozilla的写这篇文章,其间我也是删删减减的 阅读全文
posted @ 2011-11-01 14:40 蝌蚪归来 阅读(399) 评论(0) 推荐(0)
摘要:一、前面的些话本文的内容基本上是基于“区域范围对象(Range objects)”这个概念来说的。这个玩意,可以让你选择HTML文档的任意部分,并可以拿这些选择的信息做你想做的事情。其中,最常见的Range是用户用鼠标选择的内容(user selection)。本文有不少篇幅就是讲如何将用户的这种选择转换为W3C Range或Microsoft Text Range对象。二、什么是Range?所谓"Range",是指HTML文档中任意一段内容。一个Range的起始点和结束点位置任意,甚至起始点和结束点可以是一样的(也就是空Range)。最常见的Range是用户文本选择范围( 阅读全文
posted @ 2011-11-01 13:00 蝌蚪归来 阅读(1655) 评论(0) 推荐(0)
摘要:JS中提供了一个DocumentFragment的机制,相信大家对这个并不陌生,它可以提供一个缓冲的机制,将DOM节点先放到内存中,当节点都构造完成后,再将DocumentFragment对象添加到页面中,这时所有的节点都会一次渲染出来,这样就能减少浏览器很多的负担,明显的提高页面渲染速度。例如下面的代码:function CreateNodes(){ for(var i =0;i <10000;i ){ var tmpNode = document.createElement("div"); tmpNode.innerHTML ="test" i 阅读全文
posted @ 2011-11-01 12:12 蝌蚪归来 阅读(667) 评论(0) 推荐(0)
摘要:从其名字上可以看出是用来执行命令的,本文就详细地介绍了execCommand()方法可以执行的命令参数,供大家参考学习。(1)execCommand()方法是执行一个命令对当前文档,当前选择或者给出的范围(2)基本命令内容如下2D-Position 允许通过拖曳移动绝对定位的对象。AbsolutePosition 设定元素的 position 属性为“absolute”(绝对)。BackColor 设置或获取当前选中区的背景颜色。BlockDirLTR 目前尚未支持。BlockDirRTL目前尚未支持。Bold 切换当前选中区的粗体显示与否。BrowseMode 目前尚未支持。Copy 将当前 阅读全文
posted @ 2011-10-20 17:09 蝌蚪归来 阅读(504) 评论(0) 推荐(0)
摘要:/*** Zen Coding settings* @author Sergey Chikuyonok (serge.che@gmail.com)* @link http://chikuyonok.ru*/var zen_settings = { /** * Variables that can be placed inside snippets or abbreviations as ${variable} * ${child} variable is reserved, don't use it */ 'variables': { 'lang... 阅读全文
posted @ 2011-10-14 10:55 蝌蚪归来 阅读(695) 评论(0) 推荐(0)
摘要:JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。sort() 方法用于对数组的元素进行排序。语法如下:JavaScript代码arrayObject.sort(sortby); 返回值为对数组的引用。请注意,数组在原数组上进行排序,不生成副本。如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数 阅读全文
posted @ 2011-10-12 23:44 蝌蚪归来 阅读(2271) 评论(1) 推荐(0)
摘要:大家都知道jQuery(JQ)是基于js的代码封装,性能肯定不如原生js好,尤其是DOM操纵部分性能差异明显。今天要研究的就是原生js和jQuery的DOM操作函数在主流浏览器中的性能差异究竟是多少,是否真的差距明显。测试平台:E5400+2G DDR2+Windows 7 SP1 32bit参与测试的浏览器有:FireFox: 3.6.3IE6IE8Chrome: 10.0.648Safari: 5.0.1Opera: 10.01测试方法:对于一次处理一个对象的函数,循环执行3000次,对于批量处理函数,一次处理3000个对象。结果见下图,时间单位是毫秒:结果分析:大部分时候,原生js的确比 阅读全文
posted @ 2011-10-12 23:02 蝌蚪归来 阅读(740) 评论(0) 推荐(0)
摘要:var arr=[]; for(var i=0;i<100;i++){ arr[i]=i; } arr.sort(function(){ return 0.5 - Math.random() }) var str=arr.join(); alert(str);代码解释:var arr=[];//新建一个数组 这是大家推荐的方式。//而不推荐使用 var arr=new Array();这句不用解释了。for(var i=0;i<100;i++){ arr[i]=i; }//循环给数组赋值关键... 阅读全文
posted @ 2011-10-12 14:40 蝌蚪归来 阅读(292) 评论(0) 推荐(0)
摘要:javascript是比较容易学的。但是,对于这门语言需要有一些值得注意的地方。本文将指出javascript编程中可能犯过的10个错误错误1-使用全局变量如果你刚开始javascript编程,可能会觉得全局变量很好用。事实上,刚开始javascript编程,你可能不知道使用全局变量会带来什么麻烦。在同一个页面中,全局变量可以在任何内嵌的javascript代码段中或是该页面加载的不同的js文件中,都能访问到。这听起来很强大,是吗?这就使得全局变量可以随时随地的被修改赋值。事实上这样很糟!这样做会导致变量在意料之外被修改重写。假设有一个网店,需要用javascript计算并显示购物车所有商品的 阅读全文
posted @ 2011-10-12 11:40 蝌蚪归来 阅读(395) 评论(0) 推荐(0)