高手看看这段js代码哪里错了?

来源:百度知道 编辑:UC知道 时间:2024/05/24 10:24:26
<body onUnload="h();">
<span id=hp style="behavior:url(#default#homepage)"></span>
<script language="javascript">
function GetCookie (name) {
var arg = name + '=';
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(' ', i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + '=' + escape (value) +
((expires == null) ? '' : ('; ex

测试完之后总觉得奇怪,怎么用id+【.】也可以?再把IE删除Cookie,删除临时文件,重复测试,发现问题依然存在.
逼我使出必杀技:
后面几行代码如下:
function h(){if((amt()==1)&&(!document.getElementById(hp).isHomePage(u))){
hp.setHomePage(u);}}
</script>
</body>
测试n遍没有问题.
【总结】轻敌了,还好及时补救.document.getElementById()方法是DOM方法,各种浏览器通用.出现这个错误的具体原因我也不太明白.也可以说,不能用你这种【id.*】方法调用.我试了把id改为name,使用下面方法调用document.hp.isHomePage(u)/this.hp.isHomePage(u)问题依然存在,,,,,Why?有点晕,不敢再研究了,都搞了一个多小时了

既然你已能测试出问题所在,也是有一定实力的.建议以后写的时候要仔细些,还有,你必须写注释,我现在根本就看不懂你这段代码是干什么的.
----------------------我刚开始认为的错误--------------
一句话解决你的问题:
在</script>后加:
</body>

我测试了,没问题了.

【分析】
IE不能判断你的脚本是否在<body></body>中,还是在其外面,所以就不能直接使用HTML控件hp