为什么javascript:void(0)被认为有害?

时间:2010-02-15 09:38:24

标签: javascript

有人可以告诉我或指出一些资源,解释为什么在超链接中使用javascript:void(0)是有害的(特别是在Internet Explorer 6中)?

2 个答案:

答案 0 :(得分:4)

无论如何,建议不要在链接中使用javascript:关键字。我只是找到了一篇关于它可能有害的文章:

a href=”javascript:void(0);” — avoid the void

但普遍的共识表明你不应该使用它,因为它可能会混淆没有javascript支持的浏览器,对于某些浏览器,它可能被解析为无效链接。

相反,您应该提供指向页面的链接,以解决由javascript提供的功能或显示有关需要javascript正常工作的网站的消息。在您的活动的同一链接return false;上,如下所示:

<a href="noscript.html" onclick="doSomething(); return false;">I'm a link</a>

或者,在您的JavaScript代码中使用return false;preventDefault()returnValue

element.onclick = function ()
{
    /*
        // return false is better for most situations (see bobince's comment)
        if (event.preventDefault)
            event.preventDefault();
        else
            event.returnValue = false;
    */

    doSomething();

    return false;
}

答案 1 :(得分:1)

单击<a href="javascript:void(0)" />触发器事件“beforeunload”in object“window”IE(我已经在IE10中测试过),但点击<a href="#" />没有。