2

我想让用户点击一个链接,然后弹出一个带有是或否选择的 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>
4

9 回答 9

8
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>
于 2013-09-17T14:20:58.483 回答
2

就这样做;)

<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>
于 2013-09-17T14:28:28.037 回答
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>
于 2013-09-17T14:23:28.720 回答
2

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

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

于 2013-09-17T14:19:51.143 回答
1
## 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>
于 2019-08-11T11:23:29.807 回答
0

我知道这不是 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 等之间跳跃)

于 2019-09-20T11:03:59.790 回答
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>
于 2017-04-19T11:39:07.690 回答
0

实际上window.confirm返回一个boolean基于我们的选择。

这可能会有所帮助: 单击 <a> 链接时如何显示确认对话框?

我们可以简单地做:

<a href="delete.php?id=22" onclick="return confirm('Are you sure?')">Link</a>
于 2021-09-26T07:48:05.247 回答
-1

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

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

于 2018-08-29T09:25:56.957 回答