LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

JS技巧:window.location.href出问题分析思路

admin
2010年8月17日 23:12 本文热度 3813

今天在公司给别的同事改bug,其中一个是window.location.href  不起作用


alert(”ok”)
window.location.href = ‘/event/index.php?from_city=’ + site;


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


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


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


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


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


<a href=”javascript:void(0)” onclick=”changeSite(’200′)”>


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


<a href=”javascript:changeSite(’200′)”>


于是一切正常!


为什么会发生这个问题呢?我们来看看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>


对于jquery 和yui等前端框架来说他们都有阻止默认事件的方法,在调用window.location.href 等其他重定向方法之前阻止掉连接的默认事件就可以哈


比如


$(’#changesite-panel a.city’).click(function(ev){
ev.preventDefault();
changeSite($(this).attr(’rel’));
});
function changeSite(site){
window.location.href = ‘/event/index.php?from_city=’ + site;
}
})();


该文章在 2010/8/17 23:12:00 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved