[ Content | Sidebar ]

Archives for 九月, 2008

ie下name属性的bug总是很诡异~

请在ie下运行一下代码,原来meta也行的~~

1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<meta name="Description" content="xxx" />
</head>
	<body>
		<input id="description" name="description" />
	</body>
	<script>
		alert(document.getElementById('description').tagName);
	</script>
</html>
Copy Code | Run Code

ie下同名表单元素for in遍历的bug

请分别在ie和firefox下执行以下代码,看效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
	<body>
	<form id="myform">
		<input type="text" name="haha" />
		<input type="text" name="haha" />
	</form>
	</body>
</html>
<script>
function $(s){
	return document.getElementById(s);
}
var is = $('myform').haha;
for(var i in is){
	alert(i + ':' + is[i].tagName);
}
</script>
Copy Code | Run Code

结果是for in循环在ie下根本得不到要取得表单元素,瀑布汗~

简单实现js里的自定义事件

额,参考了几种方法,特做以下实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<html>
<body>
 
</body>
</html>
<script>
 
function $extend(object,src){
	if(!src)return object;
	for (var p in src){
		object[p] = src[p];
	}
	return object;
}
 
 
var $A = function(o){
  	var rt = [];
	for (var i = 0,j = o.length;i < j;i++){
		rt.push(o[i]);
	}
	return rt;
}
 
 
function enableCoustomEvent(obj){
	$extend(obj,{
		addEvent:function(type,func){
			if(!this._customEventListeners)this._customEventListeners = {};
			var funcs = this._customEventListeners;
			funcs[type] ? funcs[type].push(func) : funcs[type] = [func];			
		},
		delEvent:function(type,func){
			var funcs = this._customEventListeners[type];
			if(funcs){
				for(var i = funcs.length - 1; i >= 0;i--){
					if(funcs[i] == func){
						funcs[i] = null;
						break;
					}
				}
			}
		},
		fireEvent:function(type){
			if(!this._customEventListeners[type])return;
			var funcs = this._customEventListeners[type],s = this,ars = $A(arguments);
			ars.shift();
			for(var i = funcs.length - 1; i >= 0; i--){
				if(funcs[i])
					funcs[i].apply(s,ars);
			}
		}
	});
}
 
function echo(s){
	alert(s);
}
 
function log(s){
	document.body.appendChild(document.createTextNode(s));
}
 
function myobj(){
 
}
 
myobj.prototype = {
	run:function(){
		this.fireEvent('haha','动感超人');
	},
	fireEvent:function(){}
};
 
enableCoustomEvent(myobj.prototype);
 
var o = new myobj();
o.addEvent('haha',echo);
o.addEvent('haha',log);
o.run();
o.delEvent('haha',echo);	
o.run();
</script>
Copy Code | Run Code

无聊写个wp插件:给日志添加当天天气-blueweather

北京:晴,19.5℃,西西北风1级

—————————————-

又改了一下,直接使用class-snoopy.php~~

—————————————-

这个周末有点无聊,本来打算看看c++,给手机搞个可以同步时间的软件,但是看了半天,symbian远比我想象的麻烦,装了开发环境,但是一编译vc就挂了~

逛了一下wordpress中文站,发现有个想法不错,就是在日志编辑器直接插入当天的天气,遂实现之~~

实现过程很简单:通过ip查询地名,然后根据地名获取天气.

这个版本需要curl库的支持,但是装curl的虚拟主机好像也不是很多(shit,竟然不给装soap~),有时间改个fsocket版的再发~~

blueweather

blueweather