Prototype中的Event.observe用法

使用Event.observe可以更好地让页面元素与js代码分离,如下面的代码.
<html>
<head>
	<title>测试</title>
	<script type="text/javascript" src="prototype-1.5.1.2.js"></script>
</head>
<body>
请输入:<input type="text" name="birth" id="birth"/><br/>
<input id="btn_test" type="button" value="测试" />
</body>
</html>
<script type="text/javascript" language="javascript">
		    	Event.observe('btn_test', 'click', test);
		    	function test(){
		    	    alert("弹出消息!!!");
		    	}
</script>


不过,我如果将function test(){}方法变成一个接受参数的方法,那么页面一载入就会执行test弹出消息的方法,而不是等着按钮被点击后执行test,不知道为什么会这样?
<html>
<head>
	<title>测试</title>
	<script type="text/javascript" src="prototype-1.5.1.2.js"></script>
</head>
<body>
请输入:<input type="text" name="birth" id="birth"/><br/>
<input id="btn_test" type="button" value="测试" />
</body>
</html>
<script type="text/javascript" language="javascript">
		    	Event.observe('btn_test', 'click', test("弹出消息!!!"));
		    	function test(msg){
		    	    alert(msg);
		    	}
</script>

注:我用firefox运行,在错误控制台,看到了有如下的异常信息.
引用

错误: uncaught exception: [Exception... "Could not convert JavaScript argument"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: file:///C:/Documents%20and%20Settings/Administrator/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/prototype-1.5.1.2.js :: anonymous :: line 3014"  data: no]


有哪位大虾能帮忙解答一下此问题?

你可能感兴趣的:(JavaScript,html,c,prototype,firefox)