点这里,说点啥?

window.location.href不起作用的原因分析

2007年12月29日 11:22 | 分类:Js+ajax | 标签: | 人气:5,725℃

今天写了个跳转的js,用到了window.location.href,代码如下:

function showEnquiryListByType(typeId){
var uUrl=”/Enquiry/list/?type=enquery&calss=”+typeId;
alert(uUrl);
window.location.href=uUrl;
}

上面的alert(uUrl);是不跳转后用来调试的,页面反映为现实uUrl的值,但不进行跳转,分析思路是window.location.href出问题,所以尝试了常用的调试方式,比如:

判断是否是在包含页里面:采用

window.parent.location.href=uUrl; //这个完全否决,因为不是这种情况

采用 window.href location.href document.href均无效

于是跳出判断函数内部出错,分析页面出发该函数的事件,原来是这样的:

<a href=”javascript:void(0)” onclick=”showEnquiryListByType(‘12120015′)”>

发现问题:<a href=”javascript:void(0)” ,于是修改为:
    

<a href=”javascript:showEnquiryListByType(‘12120015′)”>

     于是一切正常!

为什么会发生这个问题呢?我们来看看javascript:void(0) :

JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

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

expression 是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。 (实现版本 Navigator 3.0 )

你可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。

下面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户点击链接时,void(0) 计算为 0,但在 JavaScript 上没有任何效果。

    <A HREF=”javascript:void(0)”>单击此处什么也不会发生</A>

下面的代码创建了一个超级链接,用户单击时会提交表单。

<A HREF=”javascript:void(document.form.submit())”>单击此处提交表单</A>

如果你喜欢文本,你可以:Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
本文链接:http://www.fangleo.cn/?p=19
关于 “window.location.href不起作用的原因分析”已经有1条评论,你也来加一层?
joy
2010-01-15

非常感谢!

为这篇文章说点什么吧?

您的名字: (*必填)

您的邮箱: (*不会被公布 ,必填))

您的网站: