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 相关文章推荐
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 Javascript
禁止按回车键提交表单的方法
Jun 11 Javascript
基于jquery实现三级下拉菜单
May 10 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
Jul 07 Javascript
JavaScript动态检验密码强度的实现方法
Nov 09 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
Dec 17 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
Jun 18 Javascript
JavaScript操作文件_动力节点Java学院整理
Jun 30 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
Mar 28 Javascript
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 jQuery
JavaScript中this的全面解析及常见实例
May 14 Javascript
细述Javascript的加法运算符的具体使用
Oct 18 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
随机广告显示(PHP函数)
2006/10/09 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
几行js代码实现自适应
2017/02/24 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
python获取一组汉字拼音首字母的方法
2015/07/01 Python
Python正规则表达式学习指南
2016/08/02 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
毕业生医学检验求职信
2013/10/16 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
监察建议书格式
2014/05/19 职场文书
初中班主任心得体会
2016/01/07 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android