我已经看过(和使用过)代码,在我的生活中有多次链接产生一个javascript动作,但是我从来没有得出关于href属性是空白还是#的结论。你有这样或那样的偏好,如果有,为什么?
<a href="" onclick="javascript: DoSomething();">linky</a>
或
<a href="#" onclick="javascript: DoSomething();">linky</a>
答案 0 :(得分:8)
您必须为href
属性 ,否则浏览器不会将其视为链接(例如,使其可聚焦或给予它(下划线) - 这就是“#”的使用变得普遍的原因。
此外,事件属性(onclick
,onmouseover
,on...
)的内容已被视为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评论。