`
文章列表
  先给出函数。  var addSheet = function(){   var doc,cssCode;   if(arguments.length == 1){     doc = document;     cssCode = arguments[0]   }else if(arguments.length == 2){     doc = arguments[0];     cssCode = arguments[1];   }else{     alert("addSheet函数最多接受两个参数!");   }   ...
通常我们需要对函数进行优化,一般的做法是开始的时候获得时间,结束的时候再获得一次时间,两次时间相减就能到到花费的时间。而函数运行速度之快,基本上都是毫秒级的。下面给出的函数就是就此准备的。 // 时间转为时间戳(毫秒) function time2stamp(){   var d = new Date();   return Date.parse(d)+d.getMilliseconds(); } 用法:   var t1 = time2stamp();   // 比较各游览器的DOM运行速度。   var divs = document.getEleme ...
如果能用字面量创建正则就最好不过,显然有时我们不得不使用new RegExp()这种大消耗的创建方法,比如语法高亮与排版就大量用到正则表达式,要用到的patten越多,需要的时间就越长,火狐好像是12秒就发出警告,IE就直接假死 ...
一般而言,如果脚本很长,我们把它们放到一个JS文件中,然后生成一个script元素并把它加入DOM树,把src设置为JS文件的地址即可。但对于很自短的脚本,如果我们又不想用new Function与eval呢?这里还有一办法,利用script元素的一个少为人知的属性text,非标准属性,但所有主流浏览器都支持。有点像 innerHTML,但innerHTML只能把字符串变成各种节点,但不能解析脚本。看下面的例子: var script = document.createElement('script'); script.type = 'text/javascript'; ...
  1 js-test-driver The goal of JsTestDriver is to build a Java Script test runner which:  1. easily integrates with continuous builds systems and  2. allows running tests on multiple browsers quickly to ease TDD style development. 官方地址:http://code.google.com/p/js-test-driver/ 2 ...
jQuery的makeArray有其局限性(1.3.4还有bug),我自己实现了一个,不过涉及N多辅助方法。 var dom = {}, _toString = Object.prototype.toString, _slice = Array.prototype.slice; dom.is = function(obj,type) {  return _toString.call(obj).match(/^\[object\s(.*)\]$/)[1] === type; } dom.isArray = function (obj) {  return dom.i ...
纵观各大类库的实现,一开始基本都是定义一个全局变量,然后对它进行扩展。如Prototype.js的Prototype,mootools的 Native,Base2的Base,Ext的Ext,JQuery的JQuery,YUI的YUI,dojo的dojo,MochiKit的 MochiKit等等。从全局变量的污染程度来看,分为两大类,Prototype,mootools与Base2归一类。Prototype的哲学是对 JS原生对象进行扩展。早些年,Ptototype差点成为事实的标准,因此基本没有考虑到与其他库的共存问题 。基于Prototype,也发展 出诸如 script. ...
模仿jQuery,设计了一个缓存系统。像jQuery.data这样的东西,Prototype与mootools也有,目的都是用来辅助事件系统,用来缓存其中生成的数据,而非缓存普通函数上次计算的结果。Prototype利用了它的Hash类,mootools没细看,它内部好像用来缓存 uuid。一个共识是,为页面用到的元素设置uuid非常有用,要查找元素时,可以避免重复查找,也可以用于与事件回调函数相绑定。由于uuid目前只有 IE支持,它叫做uniqueID,格式为ms__id\d+,后面的数字也有名堂,叫做uniqueNumber。jQuery那个算是 uniqueNumber吧,而 ...
由于后台模板系统的强大,如rails的erb,javascript的模板系统一直处于被打压状态,但又由于后台的技术发展 过快,日新月异,以及 Ajax应用的普及,javascript还是有一藉之地的。如我们要从后台返回一个HTML片断,但事实上我们永远只能返回文本(responseText)或responseXML,如果你得到是json,其实后台已稍稍调用javascript把它eval成json。 好了,既然我们知道它有用武之处,那么这模板系统的规模应多大呢?或者说,它应该有什么功能呢?问题 很简单,我们看一下那些后台模板系统就知了。后台模板发展了这么多年,非常成熟了。因此我们做的问 ...
一般来说,我们判断 iframe 是否加载完成其实与 判断 Java Script 文件是否加载完成 采用的方法很类似: var iframe = document.createElement("iframe"); iframe.src = "http://www.planabc.net"; if (!/*@cc_on!@*/0) { //if not IE   ifram ...
在 Java Script 中,使用 var ORain = {} 的形式可以模拟一个名称为 ORain 的命名空间。在实际应用开发中,我们可能会根据功能划分将 JavaScript 代码写到多个 JS 文件中,比如说用于验证的为 check.js,用于界面的为 ui.js,但是我们想把这些文件中都统一到同一个命名空间中,以便于管理 以及解决与外部引入的库产生名称冲突的问题 ,如 ORain.Check.notNull()、ORain.UI.tableSort(),这里要引入的是名称为 ORain 的顶层命名空间,该怎么做呢? 如果我们在每个 JS 文件中,都写 var ...
Html代码部分 1.要有一个带id的样式表链接,我们要通过操作这个链接来调用不同的href。 <link href="css/main0.css" rel="stylesheet" type="text/css" id="cssfile" /> 2.皮肤选择按钮(后台为每个li添加onclick事件,触发换肤功能) <ul id="skin"> <li id="skin_0" t ...
在使用一些 Java script 框架时,或许会看到类似的代码   var MyClass = new Class({     initialize: function(param, ...) {       this.param = param;       ...     },     func1: function(...) {       ... ...
利用js来动态创建表格有两种格式,appendChild()和insertRow、insertCell()。两种方式其实差不多,但第一种有可能在IE上有问题 ,所以推荐大家使用第二种了,直接说吧。 1、inserRow()和insertCell()函数 insertRow()函数可以带参数,形式如 ...
1. 总是使用 ‘var’ 在Java Script中,变量不是全局范围的就是函数范围的,使用”var”关键词将是保持变量简洁明了的关键。当声明一个或者是全局或者是函数级(function-level)的变量,需总是前置”var”关键词,下面的例子将强调不这样做潜在的问题 。 不使用 Var 造成的问题 var i=0; // This is good - creates a global variable function test() {  for (i=0; i<10; i++) {     alert("Hello World!& ...
Global site tag (gtag.js) - Google Analytics