<a href="javascript:void(0)" id="loginlink">login</a>
我见过很多次这样的威胁,但我不知道这到底意味着什么。
<a href="javascript:void(0)" id="loginlink">login</a>
我见过很多次这样的威胁,但我不知道这到底意味着什么。
当前回答
void运算符计算给定的表达式,然后返回undefined。它避免了刷新页面。
其他回答
要理解这个概念,首先应该理解JavaScript中的void运算符。
void运算符的语法为:void«expr»,它计算expr并返回undefined。
如果将void实现为函数,则如下所示:
function myVoid(expr) {
return undefined;
}
这个void运算符有一个重要的用法,那就是丢弃表达式的结果。
在某些情况下,返回undefined而不是表达式的结果是很重要的。然后可以使用void来丢弃该结果。一种这样的情况涉及javascript:URL,对于链接应该避免使用javascript,但对于bookmarklets很有用。当您访问其中一个URL时,许多浏览器会将当前文档替换为评估URL“内容”的结果,但前提是结果未定义。因此,如果要在不更改当前显示内容的情况下打开新窗口,可以执行以下操作:
javascript:void window.open("http://example.com/")
使用javascript:void(0)意味着HTML的作者误用了锚元素而不是按钮元素。
锚标记经常与onclick事件一起滥用以创建通过将href设置为“#”或“javascript:void(0)”防止页面刷新。这些值会导致意外复制/拖动链接时的行为,在新的标签/窗口、书签以及当JavaScript仍在下载时,出错或被禁用。这也向辅助技术(例如屏幕阅读器)。在这些情况下建议改用<button>。通常,您只应使用使用正确URL导航的锚点。
资料来源:MDN的<a>页面。
Web开发人员使用javascript:void(0),因为这是防止标记默认行为的最简单方法。void(*anything*)返回undefined,它是一个错误的值。返回falsy值类似于在标记的onclick事件中返回false,该事件阻止其默认行为。
所以我认为javascript:void(0)是防止标记默认行为的最简单方法。
#vs javascript:void(0);的行为存在巨大差异;。
#滚动到页面顶部,但javascript:void(0);没有。
如果您正在对动态页面进行编码,这一点非常重要,因为当用户单击页面上的链接时,他们不想返回页首。
你的a标签上应该有一个href。调用返回“undefined”的JavaScript函数就可以了。链接到“#”也是如此。
没有href的Internet Explorer 6中的定位标记不会应用a:hover样式。
是的,这很可怕,是一种轻微的反人类罪行,但总体来说,InternetExplorer6也是如此。
我希望这有帮助。
Internet Explorer 6实际上是一项危害人类的重大罪行。