调试一个网页时,发生错误,我认为该错误具有普遍性,就记录下来个咯。
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<form name="form2">
<select name="menu1" onChange ="MM_jumpMenu ('parent',this,0)">
<option selected>快速链接</option>
<option value="http://www.cnu.edu.cn/">首都师范大学</option>
<option value="http://www.bjucmp.edu.cn/">北京中医药大学</option>
<option value="http://www.sina.com.cn/">新浪</option>
<option value="http://www.yahoo.com.cn/">雅虎</option>
</select>
</form>
运行后,会发生错误,提示调用子程序不能使用括号。
分析:asp默认的使用脚本为vbscript,规定在调用子程序时使用: 方法名=函数名"参数1,参数2,参数3" 的格式。 而onChange调用的函数为javascript定义的。
解决办法:在函数调用前加javascript标签,如下所示:
<form name="form2">
<select name="menu1" onChange ="javascript : MM_jumpMenu ('parent',this,0)">
<option selected>快速链接</option>
<option value="http://www.cnu.edu.cn/">首都师范大学</option>
<option value="http://www.bjucmp.edu.cn/">北京中医药大学</option>
<option value="http://www.sina.com.cn/">新浪</option>
<option value="http://www.yahoo.com.cn/">雅虎</option>
</select>
</form>