以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?

函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>

or

函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>


当前回答

我看到了很多想继续使用#values for href的人的答案,因此,这里有一个答案,希望能让两个阵营都满意:

A) 我很高兴将javascript:void(0)作为我的href值:

<a href="javascript:void(0)" onclick="someFunc.call(this)">Link Text</a>

B) 我正在使用jQuery,并希望#作为我的href值:

<a href="#" onclick="someFunc.call(this)">Link Text</a>

<script type="text/javascript">
    /* Stop page jumping when javascript links are clicked.
       Only select links where the href value is a #. */
    $('a[href="#"]').live("click", function(e) {
         return false; // prevent default click action from happening!
         e.preventDefault(); // same thing as above
    });
</script>

注意,如果您知道链接不会动态创建,请改用单击功能:

$('a[href=“#”]').click(函数(e){

其他回答

我用开发工具在谷歌chrome中尝试了这两种方法,结果id=“#”花了0.32秒。而javascript:void(0)方法只花了0.18秒。因此,在googlechrome中,javascript:void(0)工作得更好更快。

为什么不使用这个?这不会向上滚动页面。

<span role="button" onclick="myJsFunc();">Run JavaScript Code</span>

我选择使用javascript:void(0),因为使用它可能会阻止右键单击打开内容菜单。但是javascript:;更短,做同样的事情。

通常,您应该始终有一个回退链接,以确保禁用JavaScript的客户端仍然具有某些功能。这个概念被称为不引人注目的JavaScript。

实例假设您有以下搜索链接:

<a href="search.php" id="searchLink">Search</a>

您始终可以执行以下操作:

var link = document.getElementById('searchLink');

link.onclick = function() {
    try {
        // Do Stuff Here        
    } finally {
        return false;
    }
};

这样,禁用JavaScript的用户将被引导到search.php,而使用JavaScript的用户则可以查看增强的功能。

您也可以在锚点中编写如下提示:

<a href="javascript:void('open popup image')" onclick="return f()">...</a>

因此用户将知道该链接的作用。