评 论
IE6,设置window.location.href 无效, 原因及解决1
遇到过一个问题,通过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 条评论>
相关主题
没有相关

