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 相关文章推荐
关于IFRAME 自适应高度的研究
Jul 20 Javascript
myeclipse安装jQuery插件的方法
Mar 29 Javascript
Js四则运算函数代码
Jul 21 Javascript
javascript记住用户名和登录密码(两种方式)
Aug 04 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
json数据处理及数据绑定
Jan 25 Javascript
Vue获取DOM元素样式和样式更改示例
Mar 07 Javascript
JavaScript函数节流的两种写法
Apr 07 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
Jul 25 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
Apr 28 Javascript
js实现跟随鼠标移动的小球
Aug 26 Javascript
原生js实现碰撞检测
Mar 12 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
python中常用的九种预处理方法分享
2016/09/11 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
大学应届毕业生个人求职信
2013/09/23 职场文书
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
在校学生职业规划范文
2014/01/08 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
淘宝活动策划方案
2014/02/06 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
霸气队列口号
2014/06/18 职场文书
水电工程师岗位职责
2015/02/13 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
孔子观后感
2015/06/08 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
图书借阅制度范本
2015/08/06 职场文书
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL