【问题标题】:Simulate the href click in Javascript function?模拟Javascript函数中的href点击?
【发布时间】:2021-05-17 16:21:46
【问题描述】:

我在 jsp 的遗留项目中有以下代码:

<tr>
    <th colspan="2">Customer</th>
    <td colspan="2">
      <a href="myAction.do" target="view">CustomerLink</a></td>
</tr>

我希望在单击 CustomerLink 时对行为进行少许修改。我只想在执行操作之前在 Javascript 函数中进行一些处理。 我没有了解如何在 Javascript 函数中模拟 href 链接行为?

我尝试了什么:-

<tr>
    <th colspan="2">Customer</th>
    <td colspan="2">
      <a href="javascript:customerLinkClicked('myAction.do')" target="view">CustomerLink</a></td>
</tr>

// Javascript函数

function customerLinkClicked(path)
{

    // simulate the href link behaviour, not sure how to do this


}

【问题讨论】:

    标签: javascript jakarta-ee dom-events href


    【解决方案1】:
    <a href="javascript:customerLinkClicked('myAction.do')" target="view">CustomerLink</a>
    <script>
        function customerLinkClicked(path) {
            if (confirm('message'))
                document.location.href = path;
        }
    </script>
    

    【讨论】:

      【解决方案2】:

      您可以使用window.confirm 获取确认对话框,根据选择返回真或假。之后,event.preventDefault 方法可能会取消默认行为。

      例如:http://jsfiddle.net/Klaster_1/nXtvF/

      $("a").on("click", function(event) {
          if(!window.confirm("Proceed?")){
              event.preventDefault()
          };
      });
      

      我在其中使用了 jQuery,但它完全是可选的。

      【讨论】:

        【解决方案3】:

        怎么样:

        <a href="myAction.do" onclick="customerLinkClicked()" target="view">CustomerLink</a>
        

        首先会处理 onclick 事件处理程序,然后将位置更改为 myAction.do。

        如果你想防止改变位置,你可以写

        onclick="return customerLinkClicked();"
        

        根据返回值(true、false),位置会发生变化。或者不。

        【讨论】:

          【解决方案4】:

          试试这个。只需复制和粘贴

          <script type="text/javascript">
          function fnc()
          {
          if(confirm("Do you really want to go?"))
          {window.open("yoursitename.do");}
          }
          </script
          <a href="javascript:fnc()">click</a>
          

          【讨论】:

            【解决方案5】:

            您应该避免使用内联 js,但对于您当前的情况。

                function customerLinkClicked(event) {
                    if(!confirm("Are you sure ?")) {
                          if(event.preventDefault) {
                              event.preventDefault();
                          }
                          else {
                               event.returnValue = false;
                          } 
                    } 
                }
            

            HTML

            <a href="myAction.do" onclick="customerLinkClicked(event);" target="view">CustomerLink</a>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-03-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-11-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多