使用锚作为javascript动作,链接应该是什么?

时间:2008-12-02 15:42:13

标签: javascript html

我已经看过(和使用过)代码,在我的生活中有多次链接产生一个javascript动作,但是我从来没有得出关于href属性是空白还是#的结论。你有这样或那样的偏好,如果有,为什么?

<a href="" onclick="javascript: DoSomething();">linky</a>

<a href="#" onclick="javascript: DoSomething();">linky</a>

5 个答案:

答案 0 :(得分:8)

必须href属性 ,否则浏览器不会将其视为链接(例如,使其可聚焦或给予它(下划线) - 这就是“#”的使用变得普遍的原因。

此外,事件属性(onclickonmouseoveron...)的内容已被视为javascript:您无需在javascript:前加上它

所以考虑到你的例子,内联的最佳方式(本身不是最好的方法,可能是),就像这样:

<a href="#" onclick="DoSomething(); return false">linky</a>

答案 1 :(得分:6)

Href for Javascript links: “#” or “javascript:void(0)”?查看讨论结果。

此外,将href留空会导致浏览器在用户鼠标悬停时不使用指针光标,但您可以使用CSS修复此问题。

答案 2 :(得分:1)

我总是使用#作为javascript:html属性内部似乎通常被认为是糟糕的做法。

所以说,你应该尝试避免使用onclick =属性,而是在外部.js文件中使用javascript监听器。

例如你使用jQuery ..

$(".link").click(function(e) {
    e.preventDefault();
    DoSomething();
});

答案 3 :(得分:0)

为什么不将href指向一个页面,说明他们已关闭JavaScript并且需要将其打开以获取缺少的功能?

由于链接仅在关闭javascript时才会被跟踪,因此请提供信息!

还要记住,有时候中间点击这些链接并且OnClick事件不会触发,所以如果你能得到一个不需要javascript就可以工作的页面,那将是理想的。

答案 4 :(得分:0)

在这种情况下,如果您打算不提供非JavaScript选项,我更喜欢:

<a href="javascript:// open xxx widget" onclick="DoSomething();">linky</a>

这样,您至少可以提供计划文字说明作为JavaScript评论。