<a href="javascript:void(0)" id="loginlink">login</a>
我见过很多次这样的威胁,但我不知道这到底意味着什么。
<a href="javascript:void(0)" id="loginlink">login</a>
我见过很多次这样的威胁,但我不知道这到底意味着什么。
当前回答
使用javascript:void(0)意味着HTML的作者误用了锚元素而不是按钮元素。
锚标记经常与onclick事件一起滥用以创建通过将href设置为“#”或“javascript:void(0)”防止页面刷新。这些值会导致意外复制/拖动链接时的行为,在新的标签/窗口、书签以及当JavaScript仍在下载时,出错或被禁用。这也向辅助技术(例如屏幕阅读器)。在这些情况下建议改用<button>。通常,您只应使用使用正确URL导航的锚点。
资料来源:MDN的<a>页面。
其他回答
这意味着它什么都不会做。这是试图让链接不在任何地方“导航”。但这不是正确的方式。
实际上,您应该在onclick事件中返回false,如下所示:
<a href="#" onclick="return false;">hello</a>
通常,如果链接正在做一些“JavaScript-y”的事情,则使用它。比如发布AJAX表单,或者交换图像等等。在这种情况下,只需使调用的函数返回false。
然而,为了让你的网站变得非常棒,如果浏览者选择不运行JavaScript,通常你会包含一个执行相同操作的链接。
<a href="backup_page_displaying_image.aspx"
onclick="return coolImageDisplayFunction();">hello</a>
使用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)是防止标记默认行为的最简单方法。
void运算符计算给定的表达式,然后返回undefined。void运算符通常仅用于获取未定义的原语值,通常使用“void(0)”(相当于“void 0”)。在这些case,全局变量未定义可以使用(假设它有未分配给非默认值值)。
这里提供了一个解释:void运算符。
您希望使用链接的href进行此操作的原因是,通常javascript:URL会将浏览器重定向到评估该javascript结果的纯文本版本。但如果结果未定义,则浏览器将保持在同一页面上。void(0)只是一个短而简单的脚本,其计算结果为undefined。
void运算符计算给定的表达式,然后返回undefined。它避免了刷新页面。