<a href="javascript:void(0)" id="loginlink">login</a>
我见过很多次这样的威胁,但我不知道这到底意味着什么。
<a href="javascript:void(0)" id="loginlink">login</a>
我见过很多次这样的威胁,但我不知道这到底意味着什么。
当前回答
值得一提的是,检查undefined时有时会看到void 0,因为它需要更少的字符。
例如:
if (something === undefined) {
doSomething();
}
对比:
if (something === void 0) {
doSomething();
}
为此,某些缩小方法将undefined替换为void 0。
其他回答
void是一个运算符,用于返回未定义的值,因此浏览器将无法加载新页面。
除非是返回null的JavaScript函数,否则Web浏览器将尝试将使用的任何内容作为URL并加载它。例如,如果我们单击如下链接:
<a href="javascript: alert('Hello World')">Click Me</a>
然后将显示一条警报消息,而不加载新页面,这是因为警报是一个返回空值的函数。这意味着,当浏览器尝试加载新页面时,它会看到null,并且没有任何内容可加载。
关于void运算符需要注意的一点是,它需要一个值,并且不能单独使用。我们应该这样使用:
<a href="javascript: void(0)">I am a useless link</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>
#vs javascript:void(0);的行为存在巨大差异;。
#滚动到页面顶部,但javascript:void(0);没有。
如果您正在对动态页面进行编码,这一点非常重要,因为当用户单击页面上的链接时,他们不想返回页首。
void运算符计算给定的表达式,然后返回undefined。void运算符通常仅用于获取未定义的原语值,通常使用“void(0)”(相当于“void 0”)。在这些case,全局变量未定义可以使用(假设它有未分配给非默认值值)。
这里提供了一个解释:void运算符。
您希望使用链接的href进行此操作的原因是,通常javascript:URL会将浏览器重定向到评估该javascript结果的纯文本版本。但如果结果未定义,则浏览器将保持在同一页面上。void(0)只是一个短而简单的脚本,其计算结果为undefined。
值得一提的是,检查undefined时有时会看到void 0,因为它需要更少的字符。
例如:
if (something === undefined) {
doSomething();
}
对比:
if (something === void 0) {
doSomething();
}
为此,某些缩小方法将undefined替换为void 0。