4

我在 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


}
4

5 回答 5

7
<a href="javascript:customerLinkClicked('myAction.do')" target="view">CustomerLink</a>
<script>
    function customerLinkClicked(path) {
        if (confirm('message'))
            document.location.href = path;
    }
</script>
于 2012-10-12T05:18:58.073 回答
0

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

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

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

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

于 2012-10-12T05:19:24.390 回答
0

关于什么:

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

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

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

onclick="return customerLinkClicked();"

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

于 2012-10-12T05:23:23.110 回答
0

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

<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>
于 2012-10-12T05:25:23.253 回答
0

您应该避免使用内联 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>
于 2012-10-12T05:26:43.373 回答