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 相关文章推荐
使用IE的地址栏来辅助调试Web页脚本
Mar 08 Javascript
jquery得到font-size属性值实现代码
Sep 30 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
解释&amp;&amp;和||在javascript中的另类用法
Jul 28 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
Oct 17 Javascript
微信小程序 数据绑定详解及实例
Oct 25 Javascript
js制作简单的音乐播放器的示例代码
Aug 28 Javascript
详解Node.js利用node-git-server快速搭建git服务器
Sep 27 Javascript
微信小程序云开发之使用云数据库
May 17 Javascript
Promise扫盲贴
Jun 24 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
vue 获取元素额外生成的data-v-xxx操作
Sep 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
重置版宣传动画
2020/04/09 魔兽争霸
测试php函数的方法
2013/11/13 PHP
php socket通信简单实现
2016/11/18 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
JAVASCRIPT IE 与 FF中兼容问题小结
2009/02/18 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
vuejs指令详解
2017/02/07 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
营销与策划个人求职信
2013/09/22 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
六查六看六改心得体会
2014/10/14 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL