确认后才重定向

时间:2013-09-17 14:17:26

标签: javascript php

我希望用户点击链接,然后弹出一个带有是或否的javascript弹出窗口,但是如果是,则重定向到不同的URL,如果没有,则保持在同一页面上。 我尝试了下面的代码,但是当选择是或否时,它会将我带到同一页面。

function YNconfirm() { 
 if (window.confirm('Really go to another page?'))
{
    alert("You agree") 
window.location.href = (http:///mediclaim_portal/logout2.php');
}
else
{
window.location.href = (this.document);
}};
</script>

then 
<a href="\mediclaim_portal/logout2.php" onclick="YNconfirm()">Home</a>

8 个答案:

答案 0 :(得分:5)

function YNconfirm() { 
 if (window.confirm('Really go to another page?'))
 {
   alert("You agree") 
   window.location.href = 'http:///mediclaim_portal/logout2.php';
 }
}

然后

<a href="/mediclaim_portal/logout2.php" onclick="YNconfirm(); return false;">Home</a>

答案 1 :(得分:2)

如果在onclick事件中运行的代码没有返回false,则会发生href。 即尝试这样的事情:

function YNconfirm() { 
    if (window.confirm('Really go to another page?'))
    {
        alert("You agree");
        return true;
    }
    else
        return false;
};
</script>
<a href="\mediclaim_portal/logout2.php" onclick="return(YNconfirm());">Home</a>

答案 2 :(得分:1)

运行点击处理程序后,浏览器将导航到该链接。

您应该将处理程序更改为return false以取消导航,而不是设置location

答案 3 :(得分:0)

就这样做;)

<script type="text/javascript">   
function YNconfirm() { 
     if (window.confirm('Really go to another page?')){
         alert("You agree") 
         //REDIRECT
         window.location.href = (http://mediclaim_portal/logout2.php');
     }
     else{
        //DO NOTHING AND STAY IN THE SAME PAGE
        //OR SOMETHING ELSE THAT YOU WANT

        return false;
     }
};
</script>
<!-- IMPORTANT, dont link your 'a', or it will always be submited -->
<a href="javascript:void(0);" onclick="YNconfirm();">Home</a>

答案 4 :(得分:0)

<a href="http://mediclaim_portal/logout2.php" onclick="YNconfirm(this, event)">Home</a>

然后编写jquery脚本,如下所示

<script>
 function YNconfirm(el,ev){
    var confirm = window.confirm("Really go to another page?");
    if(confirm){
        window.location.href = $(el).attr("href");
    }else{
        ev.preventDefault();
    }
 }
</script>

答案 5 :(得分:0)

最好的方法是使用像这样的函数的返回值

function YConfirm(
if (window.confirm('Really go to another page?')){
     return true;
 }
 return false;
)

现在只需像这样调用此函数即可。

<a href="http://mediclaim_portal/logout2.php" onclick="return YConfirm();">Home</a>

现在,您无需使用javascript重定向页面。

答案 6 :(得分:0)

## Try this for all url ##

<a href="https://code.jquery.com">Click Here</a>     
       <script type="text/javascript">
          $(document).ready(function(){
            $('a').click(function(){
              //get a href url
              var url = $(this).attr('href');
              //check condition for redirection
              var answer = confirm("Leave From this page");
              if (answer){
                document.location.href = url;
              }else{
               alert("Thanks for sticking around!");
               return false;
              }
            });
          });
        </script>

答案 7 :(得分:0)

我知道这不是代码高尔夫,但这是我通常采用的解决方案(可读性更高):

<a onclick="if(confirm("Want to go to the new page?)){location.href = "bla.newpage.bla"}}

虽然“ onclick返回true”有效,但它需要有关onclick和href标记如何交互的内部知识。我发现自己的方法更容易用眼(特别是如果您经常在C#,JS,SQL等之间不断跳转)