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

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>

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

(0)

相关推荐

  • jsp下页面跳转的几种方法小结

    1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet或者是JSP到另外的一个Servlet.JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同

  • js跳转页面方法实现汇总

    复制代码 代码如下: <span id="tiao">3</span><a href="javascript:countDown"></a>布丁足迹;秒后自动跳转--<meta http-equiv=refresh content=3;url='/search/billsearch.jsp'</ul> <!--脚本开始--> <script language="javasc

  • js 控制页面跳转的5种方法

    第一种: 复制代码 代码如下: <script language="javascript" type="text/javascript">           window.location.href="login.jsp?backurl="+window.location.href;     </script> 第二种: 复制代码 代码如下: <script language="javascript&qu

  • js实现页面跳转重定向的几种方式

    第一种: 复制代码 代码如下: <script language="javascript"type="text/javascript"> window.location.href="http://shanghepinpai.com"; </script> 第二种: 复制代码 代码如下: <script language="javascript"> alert("返回");

  • js跳转页面方法总结

    js跳转页面方法大全<span id="tiao">3</span><a href="javascript:countDown"></a>祥子网屋;秒后自动跳转--<meta http-equiv=refresh content=3;url='/search/billsearch.jsp'</ul> <!--脚本开始--> <script language="javascr

  • js几秒以后倒计时跳转示例

    复制代码 代码如下: <html> <head> <title>出错啦~~~</title> <link href="css/login1.css" mce_href="css/login1.css" rel="stylesheet" type="text/css" /> <script language="javascript" type=

  • JAVASCRIPT实现的WEB页面跳转以及页面间传值方法

    但有时候,需要当某事件触发时,我们先做一些操作,然后再跳转,这时,就要用JAVASCRIPT来实现这一跳转功能. 下面是具体的做法: 一:跳转到新页面,并且是在新窗口中打开时: 复制代码 代码如下: function gogogo() { //do someghing here... window.open("test2.html"); } window是一个javascript对象,可以用它的open方法,需要注意的是,如果这个页面不是一相相对路径,那么要加http://,比如: 复

  • js点击button按钮跳转到另一个新页面

    点击按钮怎么跳转到另外一个页面呢?我们在网站制作中可能是需要的,因为有时我们需要做这样的效果,尤其是将按钮做成一个图片,而点击图片要跳转到新的页面时,怎么做到呢? 这样的效果可以:onclick="window.location='新页面'" 来实现. 1.在原来的窗体中直接跳转用 代码如下 window.location.href="你所要跳转的页面"; 2.在新窗体中打开页面用: 代码如下 window.open('你所要跳转的页面'); window.hist

  • js页面跳转常用的几种方式

    第一种: 复制代码 代码如下: <script language="javascript" type="text/javascript"> window.location.href="jb51.jsp?backurl="+window.location.href; </script> 第二种: 复制代码 代码如下: <script language="javascript"> alert(&

  • javascript 网页跳转的方法

    第一种: <script language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl=\"+window.location.href; </script> 第二种: <script language="javascript"> alert("返回"); wind

随机推荐