javascript 仅在确认后重定向

jq6vz3qz  于 2023-01-01  发布在  Java
关注(0)|答案(9)|浏览(159)

我想让用户点击一个链接,然后有一个javascript弹出窗口与是或否的选择,但如果是重定向到不同的网址,如果没有,然后留在同一页。我尝试了下面的代码,但它把我带到同一页时,选择是或否。

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>
h6my8fg2

h6my8fg21#

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>
3yhwsihp

3yhwsihp2#

浏览器在运行单击处理程序后导航到链接。
您应该将处理程序更改为return false以取消导航,而根本不设置location

rt4zxlrg

rt4zxlrg3#

如果在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>
k97glaaz

k97glaaz4#

就这么办吧)

<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>
mfuanj7w

mfuanj7w5#

## 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>
xurqigkl

xurqigkl6#

实际上,window.confirm根据我们的选择返回一个boolean

这可能有帮助:How to display a confirmation dialog when clicking an link?

我们可以简单地做到:

<a href="delete.php?id=22" onclick="return confirm('Are you sure?')">Link</a>
vc9ivgsu

vc9ivgsu7#

<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>
7gyucuyw

7gyucuyw8#

我知道这不是codegolf,但这是我通常使用的解决方案(可读性稍强一些):

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

虽然“onclick return true”可以工作,但它需要onclick和href标记如何交互的内部知识。我发现我的方法更容易上手(特别是如果你经常在C#,JS,SQL等之间跳转)

zkure5ic

zkure5ic9#

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

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重定向页面了。

相关问题