href =“javascript:Function()它是如何工作的

时间:2012-05-17 08:41:58

标签: javascript

<a href="javascript:Function()"> Content</a>

像这样,功能是如何工作的?我可以拦截它吗?如果我不使用鼠标怎么能触发呢?

2 个答案:

答案 0 :(得分:6)

当链接被“触发”时,即在点击或标签上并按 ENTER 时,它将被触发。您可以通过使用自定义函数替换Function来“拦截”它:

var oldFunc = window.YourFunction;
window.YourFunction = function() {
    // do something
    oldFunc(); // call the old function if necessary
    // do more if necessary
}

顺便说一下:你根本不应该这样做。使用onclick="..."甚至更好,通过JavaScript注册活动。当链接实际上没有鼠标点击但是通过按 ENTER 触发时,两种情况也会触发。

要使用onclick,链接应如下所示:

<a href="#" onclick="YourFunction(); return false;">...</a>

在现代浏览器中注册事件(在v9之前的IE不是现代浏览器,以防对您而言):

<a href="#" id="whatever">...</a>
<script>
document.getElementById('whatever').addEventListener('click', YourFunction, false);
</script>

为了保持简短和跨浏览器兼容,我强烈建议您使用jQuery

<a href="#" id="whatever">...</a>
<script>
$('#whatever').on('click', YourFunction);
</script>

答案 1 :(得分:0)

如果您想使用href

,可以使用此功能
<a href="javascript:void(0);" onclick="smfunction()">Content</a>​

<script lang="javascript" type="text/javascript">
   function  smfunction(){
        alert("Running");
    }
</script>