我读过href="#"和href="javascript:void(0)"比较,我也想知道比较
href="javascript:;" or href="javascript:void(0)",
ps:我一直用href="javascript:;"的href="javascript:void(0)",没发现什么麻烦。
我读过href="#"和href="javascript:void(0)"比较,我也想知道比较
href="javascript:;" or href="javascript:void(0)",
ps:我一直用href="javascript:;"的href="javascript:void(0)",没发现什么麻烦。
以javascript:任何一种形式在超链接中使用都是不好的。你的 JavaScript 设计应该不显眼。
如果要将事件侦听器附加到锚点,则应使用#锚点甚至实际 URL,例如:
<a href="/delete/post/123">delete</a>
...
<script>
jQuery(function($) {
$('a').on('click', function(event) {
event.preventDefault();
// do ajax stuff
});
});
</script>
这样,旧浏览器(或禁用 JavaScript 的浏览器)将按照常规链接删除项目,而启用 JavaScript 的浏览器将通过 AJAX 执行此操作,因此页面不必刷新。
如果您的链接真的什么都不做,那么您根本不应该使用锚点;<span>只需为此目的设置 a 样式。
链接的通常行为javascript:是将文档正文替换为表达式计算结果的任何内容,除非它计算结果为undefined. 您的两个版本之间没有区别,它们都对链接undefined中的哪个版本javascript:无效。
但是,这不是制作无操作链接的首选方式。您不必要地强制浏览器解析和评估 JavaScript。如果您想创建一个什么都不做的链接,您应该将其设置href为"#", 并将函数绑定到链接的click事件。您的事件处理程序将被传递一个事件对象;如果您想评估某些代码然后阻止链接被跟踪(附加#到当前 URL),那么您可以使用event.preventDefault(),event.stopPropagation()或简单地false从您的事件处理程序中返回。
最好的选择是在href属性中保留一些有意义的值,这样如果绕过 JavaScript(IE,用户在新窗口中打开链接),仍然有一些理智的后备。然后,您应该在现有的纯 HTML 功能之上添加额外的“丰富”操作。
您放入的href内容并不真正相关。您应该首先通过false从单击处理程序返回来阻止链接被跟踪。
例子:
<a href="fallback.html" onclick="doSomething();return false;">
在其中,href您可以为禁用 Javascript 的用户放置一个后备解决方案的链接,或者一个页面通知他们需要 Javascript 才能使用该页面的功能。
javascript:void(0) - 比 javascript:some_code_to_execute 更容易理解。当然,在你的情况下 javascript:; 不难阅读,不会假设代码被破坏。
有几个原因,为什么用 javascript: 处理 lcick 不好。我知道这不是实际问题,但它是相关的: