javascript 中设置window.location.href跳转无效问题解决办法


Posted in Javascript onFebruary 09, 2017

javascript 中设置window.location.href跳转无效问题解决办法

问题情况

JS中设置window.location.href跳转无效

代码如下:

<script type="text/javascript"> 
  function checkUser() 
{  
   if(2!=1){ 
    window.location.href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;  
   } 
} 
 </script>  
 
<div class="extra"> 
     <a class="ui blue right floated primary button" onclick="checkUser()" href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime }" rel="external nofollow" rel="external nofollow" >确认预订</a> 
      </div>

原因是 a标签的href跳转会执行在window.location.href设置的跳转之前:

如果是表单form的话  也会先执行form提交。

提交之后 就已经不在当前页面了。所以 window.location.href无效。

解决方法一

在js函数中加上

window.event.returnValue=false

这个属性放到提交表单中的onclick事件中在这次点击事件不会提交表单,如果放到超链接中则在这次点击事件不执行超链接href属性。

改成如下代码后window.location.href成功跳转:

<script type="text/javascript"> 
  function checkUser() 
{  
   if(2!=1){ 
    window.location.href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;  
   window.event.returnValue=false; 
   } 
} 
 </script>  
 
<div class="extra"> 
     <a class="ui blue right floated primary button" onclick="checkUser()" href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime }" rel="external nofollow" rel="external nofollow" >确认预订</a> 
      </div>

解决方法二

点击事件中  onclick="checkUser()"  变成 onclick="return checkUser();"

并且在 checkUser中 return  false;这样的话 a标签的href也不会执行。 这样就能window.location.href顺利跳转。

代码如下:

<script type="text/javascript"> 
  
  function checkUser() 
{  
   if(<%=flag%>!=1){ 
    window.location.href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ; 
   return false; 
   } 
} 
 </script> 
 
 <div class="extra"> 
     <a class="ui blue right floated primary button" onclick="return checkUser();"  
 
href="bookConfirm?userId=${account.id}&roomNum=${room.roomNum}&stime=${stime }&etime=${etime  
 
}">确认预订</a> 
      </div>

解决方法三

如果是form体提交的话还可以把summit改成button调用js提交,这样window.location.href也会在js提交summit之前执行成功跳转。

如下:

function checkUser() 
{  
   if(<%=flag%>!=1){ 
    window.location.href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ; 
   return false; 
   } 
 document.getElementById("form").submit(); 
} 
 
 
  <form action="addRoom" method="post"  name="from" id="form"> 
      <table align="center" border="1" class="commTable"> 
        <tr> 
          <td class="right"><span 
            style="font-weight: blod;">房号:</span></td> 
          <td><input type="text" name="roomNum" size="25" 
            id="roomNum" /></td> 
        </tr> 
        <tr> 
          <td colspan="2" align="center"><button  value="添加" 
            onclick="checkUser()" /></td> 
        </tr> 
      </table> 
    </form>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
强制设为首页代码
Jun 19 Javascript
js查找父节点的简单方法
Jun 28 Javascript
JavaScript 的方法重载效果
Aug 07 Javascript
js 页面刷新location.reload和location.replace的区别小结
Dec 24 Javascript
23个超流行的jQuery相册插件整理分享
Apr 25 Javascript
基于jquery的一个拖拽到指定区域内的效果
Sep 21 Javascript
jQuery关于导航条背景切换效果实现示例
Sep 04 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
Mar 03 Javascript
原生JavaScript实现remove()和recover()功能示例
Jul 24 Javascript
node.js基于socket.io快速实现一个实时通讯应用
Apr 23 Javascript
js针对图片加载失败的处理方法分析
Aug 24 Javascript
JavaScript实现简单贪吃蛇效果
Mar 09 Javascript
微信小程序之picker日期和时间选择器
Feb 09 #Javascript
BootStrap 弹出层代码
Feb 09 #Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 #Javascript
javascript history对象详解
Feb 09 #Javascript
jquery dialog获取焦点的方法
Feb 09 #Javascript
jQuery实现淡入淡出的模态框
Feb 09 #Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
Feb 09 #Javascript
You might like
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
python 公共方法汇总解析
2019/09/16 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
idealfit英国:世界领先的女性健身用品和运动衣物品牌
2017/11/25 全球购物
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
现金出纳岗位职责
2014/03/15 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
社保转移委托书范本
2014/10/08 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
javascript Number 与 Math对象的介绍
2021/11/17 Javascript