随笔分类 - Javascript
摘要:文件结构如图:用F5刷新页面间歇性出错:demo.html代码:<!DOCTYPE HTML><html><head> <meta charset="utf-8"/> <title>seajs Hello World</title> <script src="/script/libs/dist/sea.js" data-main="/script/main"></script> <script src="/script/pa
阅读全文
摘要:我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换)如:var a={length:2,0:'first',1:'second'};Array.prototype.slice.call(a);// ["first", "second"]var a={length:2};Array.prototype.slice.call(a);// [undefi
阅读全文
摘要:在使用for-in循环时,返回的是所有能够通过对象访问的、可枚举的(enumerated)属性,其中既包括存在于实例中的属性,也包括存在于原型中的属性。屏蔽了原型中不可枚举属性(即设置了[[DontEnum]]标记的属性)的实例属性也会在for-in循环中返回,因为规定,所有开发人员定义的属性都是可枚举的——只有IE除外。IE的JScript实现中存在一个bug,即屏蔽了不可枚举属性的实例属性不会出现在for-in循环中。例如: 1 var o = { 2 toString: function () { 3 return "My Object"; 4 } 5 }...
阅读全文
摘要:var extend = function(destination, source, override) { if (override === undefined) override = true; for (var property in source) { if (!override && typeof(source[property]) == 'function' && destination.hasOwnProperty(property)) { destination[property] = (f...
阅读全文
摘要:直接上代码: var extend = function(destination, source, override) { if (override === undefined) override = true; for (var property in source) { if (!override && typeof(source[property]) == 'function' && destination.hasOwnProperty(property)) { destination[property...
阅读全文
摘要:var i = 0; my_label : { i++; break my_label; i = 0; } my_label1 : { i++; while(true) { break my_label1; } i = 0; } my_label2 : { i++; switch (true) { case false : break; //作用于sw...
阅读全文
摘要:Bug修正:1、修正重复点开始累加执行。2、增加loop未设置初始化为循环。3、增加设置循环时间的接口。4、修正loop为flase无法执行第一轮的bug。Code 1.1<!DOCTYPE html><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title></title></head><body><div id="sho
阅读全文
摘要:本例子是用A*方法先上一个4方向的A*<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <meta http-equiv="Content-Type" content="text/html" charset="utf-8"> <title>A* javascr
阅读全文
摘要:通过mootools 获取 background-position 的值时,在 IE 中返回 undefined通过测试,发现无论是写在样式表中,还是写在元素style属性里,在 IE ( 6, 7, 8 ) 里获取background-position的值时,均返回undefined。自己增加了mootools 的扩展1 Element.implement({2 getBackgroundPosition : function() {3 if (Browser.Engine.trident) {4 return this.getStyle('backgroundPositionX
阅读全文
摘要:本早就想写一篇这样的博客,也许是mootools的一个系列吧,不过估计最近不会有充足的时间,所以说系列就太挖坑了。感兴趣的同学可以继续,我觉得从mootools的源码出发,可以写出一本不错的Javascript的中级的教材,如果我有时间我会就会发出系列的口号的。这次我分析的是mootools的核心,Core.js。我看的版本是1.2.4dev,是从github上clone下来的。git clone git://github.com/mootools/mootools-core.git。Core.js最核心的就是Native函数了,然后还有一些常用的工具,以及对于Object和Array的简单实
阅读全文
摘要:正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用这一能力。请回想一下,对一个正则表达式模式或部分模式两边添加圆括号将导致这部分表达式存储到一个临时缓冲区中。可以使用非捕获元字符 '?:', '?=', or '?!' 来忽略对这部分正则表达式的保存。所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区编号从 1 开始,连续编号直至最大 99 个子表达式。每个缓冲区都可以使用 '\n' 访问,其中 n 为一个标识特定缓冲区的一位或两位十进制数。 后向引用一个最简单,最有用的应
阅读全文
摘要:1 <script type="text/javascript"> 2 test1 : for (var i = 0; i < 3; i++) { 3 test2 : for (var j = 0; j < 3; j++) { 4 if (i == 1 && j == 1) { 5 continue test1; 6 } else { 7 alert("i = " + i + ", j = " + j); 8 } 9 }10 }11 /*Output is:12 "i = 0, j =
阅读全文
摘要:这主要是IE在对innerHTML进行写操作的时候会检查infoDIV是否具备做为这些内容中html对象容器的要求,所以当你发现这些错误出现,尝试做两件事情:1、检查你尝试加到innerHTML的html代码是否包含破损的html标签(某些标签或许缺少关闭标签). 2、把你的容器改成那些比较“包容”的标签,如 <span> </span>, <div> </div>特别注意的是 <tbody>, <table>, <tr>标签里面加正确格式的 <td>标签都有可能出错,所以应该避免使用这些标签作为容
阅读全文
摘要:今天发现页面上新加上的左列 Tag 在 Firefox 上显示不正确,在细察之下,发现 Firefox 在 JavaScript / CSS 上和 IE 不同之处:问题 1. 类似 obj.style.height = imgObj.height 的语句无效。即将一个 image 对象的高度值赋给另一个对象,用来修改其样式高度,这样做无效。分析要理解这个问题,首先要纠正思想上的一个误区。以上这个操作,其实并非是通常编程概念上的将一个 int 值赋给另一个 int 变量。这个语句的操作,实际上是把 imageObj.height 当作一个字符串,作为 obj 这个对象 CSS 中 height
阅读全文
摘要:ie和firefox下操作table对象的异同【测试浏览器版本:ie为6,firefox为2.0】1)在ie下,table标签直接使用appendChild增加document.createElement('tr')的行时不显示,但是在firefox下是没有问题的。如下<table id="table1" border='1'></table><script type='text/javascript'>var tb=document.getElementById('table1
阅读全文

浙公网安备 33010602011771号