IE6,设置window.location.href 无效, 原因及解决

By Cen  2009-09-02 10:47:15

遇到过一个问题,通过js设置window.location.href用来跳转页面,但在IE6下无效(在Firefox完全没问题,工作得很好),debug半天没看出什么问题,代码也不报错,上网搜索一下,找到个解决方案,只要设置个setTimeout就可以让其在IE/FF下工作得很好,见代码框函数.
原因:
出现上面问题的代码是:
<a onclick="ReDirectPage('page.aspx');" href="javascript:void(0);">
重点就出在 href="javascript:void(0);
JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

    void 操作符用法格式如下:
        1. javascript:void (expression)
       2. javascript:void expression

    expression 是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。 
    你可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。
上面这种写法无效属于这种情况.
用如下这种写法不用setTimeout也可以工作得很好:
<a href="javascript:ReDirectPage('page.aspx');">

程序代码 设置window.location.href 无效解决方法
1.
<a onclick="ReDirectPage('page.aspx');" href="javascript:void(0);">//需要用setTimeout
function ReDirectPage(url)
{
    setTimeout(function(){window.location.href=url},0);
}
2.
<a href="javascript:ReDirectPage('page.aspx');">//这种方法在IE6下正常工作

评 论
长篇评论
 No comment yet!
短篇评论 <共 0 条评论>


相关主题
没有相关