日期:2014-05-16  浏览次数:20383 次

页面加载时为什么是未定义
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
<SCRIPT language="JavaScript" type="text/javascript">
var HashTable = [];
HashTable.add = function(key,value)
{
this[key] = value;
}
HashTable.getValue = function(key)
{
return this[key];
}
function Message()
{
HashTable.add("a1","http://www.163.com");
HashTable.add("a2","http://www.baidu.com");
HashTable.add("b1","http://www.etiansw.com");
HashTable.add("b2","http://www.sohu.com");
HashTable.add("c1","http://www.taobao.com");
HashTable.add("c2","http://www.263.com");
HashTable.add("d1","http://www.qq.com");
HashTable.add("d2","http://www.huajun.com");
}

function geturl(tagid,x){
  url =HashTable.getValue(tagid+x);
  alert(url);}
</SCRIPT>
</head>
<body onLoad="Message();"><div>
<SCRIPT type="text/javascript" defer="defer">
<!--
geturl('a',1);
//-->
</SCRIPT>

<li onclick="geturl('a','1');">点我</li>

</div>
</body></html>

或者直接打开http://www.etiansw.com/c.htm 我的键名是拼凑字符 ,我用了HashTable的getValue(tagid+x),可是页面加载时不能初始化,点 点我却能得到我想要的值,我想加载时就直接得到有什么办法,我不知道我的意思表达清楚了没有,有疑问请留言,谢谢

------解决方案--------------------
onLoad="Message();" 表示页面所有东西加载完成以后,再调用该函数的;
所以你想用加载时就调用geturl( 'a ', '1 ')显示数据,你就必须
var HashTable = []; 
HashTable.add("a1","http://www.163.com"); 
HashTable.add("a2","http://www.baidu.com"); 
HashTable.add("b1","http://www.etiansw.com"); 
HashTable.add("b2","http://www.sohu.com"); 
HashTable.add("c1","http://www.taobao.com"); 
HashTable.add("c2","http://www.263.com"); 
HashTable.add("d1","http://www.qq.com"); 
HashTable.add("d2","http://www.huajun.com"); 
直接把值添加完成,不用函数操作.

------解决方案--------------------
<SCRIPT type="text/javascript" defer="defer" >
<!--
Message();
geturl( 'a ','1');
//-- >
</SCRIPT >
------解决方案--------------------
<SCRIPT type="text/javascript" defer="defer" > 
<!-- 
Message(); 
geturl( 'a ', '1 '); 
//-- > 
</SCRIPT > 
--------------------------
放到页面得最下边就可以了