是否有一个会影响以任何方式的页面表现什么的onclick和HREF =“JavaScript之间的差异:函数名
1 : <a href="javascript:MyFunction()">Link1</a>
和
2 : <a href="#" onclick="MyFunction()">Link2</a>
之间有什么区别?
是否有一个会影响以任何方式的页面表现什么的onclick和HREF =“JavaScript之间的差异:函数名
1 : <a href="javascript:MyFunction()">Link1</a>
和
2 : <a href="#" onclick="MyFunction()">Link2</a>
之间有什么区别?
如果您的元素实际上不应该将用户链接到某个位置,那么不会使其成为锚点元素。如果您使用<a>
标签只是为了获取下划线/光标更改 - 不要。改为在<span>
(或其他元素)上使用CSS。
span.link {
text-decoration: underline;
color: blue;
cursor: pointer;
}
保持你的HTML语义,只有当你想给用户连接的地方使用锚元素。
没有性能上的差异。
首先是废话,因为它对于未启用JS的用户将完全失败。
第二个仍然是废话,但如果href
指向未启用JS的用户的URL会更好。
功能上有区别,第一个不会尝试处理链接。第二个呢。
但是,我同意Coronatus--两种方法都不理想。我会建议研究不引人注意的JavaScript(可能与jQuery),因为您可以动态地将单击事件添加到元素。
onclick版本允许您将“this”作为参数传递,因此您可以返回到点击来自的标记/对象。不可能的协议方法:
<a href="#" onclick="alert(this.innerHTML)">yo yo yo</a>
会吐出一个警报弹出与“呦呦呦”,而
<a href="javascript:alert(this.innerHTML)">yo yo yo</a>
会吐出“未定义”。
安装href =“javascript:doSomething”意味着如果用户没有启用js,则没有可以回退的url。因此,通常认为设置href =“something.html”和onclick =“return doSomething()”更好,因为如果js被禁用,您可以导航到新页面,但是如果启用了js,则可以返回为了防止导航到链接并在不刷新页面的情况下在同一页面中显示某些内容,则为false。
更好的是,不要添加onclick内联,只需在页面加载时添加js处理程序。这是不显眼的方式
如果您的网站需要使用Javascript才能正常运行,那么在href中的Javascript是最好的,因为它显示状态栏中的链接并保持代码紧凑。在HREF中也提供没有鼠标的键盘导航。如果您的网站需要在没有Javascript的情况下运行,那么您必须使用onclick,以便href可以在其中包含链接。在单独的Javascript文件中添加操作无法使代码&紧密地绑定在一起。
http://stackoverflow.com/questions/1070760/javascript-function-in-href-vs-onclick的可能重复 – kennytm 2010-04-05 16:03:22