什么是;javascript:void(0)";什么意思?
我见过很多次这样的什么是;javascript:void(0)";什么意思?,javascript,void,Javascript,Void,我见过很多次这样的hrefs,但我不知道这到底是什么意思。这意味着它什么也做不了。这是试图让链接不在任何地方“导航”。但这不是正确的方法 实际上,您应该在onclick事件中返回false,如下所示: 通常,如果链接正在执行一些“JavaScript-y”操作,就使用它。比如发布AJAX表单,或者交换图像,等等。在这种情况下,您只需使被调用的函数返回false 然而,为了让你的网站完全棒极了,如果浏览它的人选择不运行JavaScript,通常你会包含一个执行相同操作的链接 void运算符
href
s,但我不知道这到底是什么意思。这意味着它什么也做不了。这是试图让链接不在任何地方“导航”。但这不是正确的方法
实际上,您应该在onclick
事件中返回false,如下所示:
通常,如果链接正在执行一些“JavaScript-y”操作,就使用它。比如发布AJAX表单,或者交换图像,等等。在这种情况下,您只需使被调用的函数返回false
然而,为了让你的网站完全棒极了,如果浏览它的人选择不运行JavaScript,通常你会包含一个执行相同操作的链接
void
运算符计算给定的
表达式,然后返回未定义的
void
运算符通常仅用于
获取未定义的原语
值,通常使用“void(0)
”
相当于“void 0
”)。在这些
案例,全局变量
可以改为使用(假设有
未分配给非默认值
价值)
此处提供了解释:
您希望使用链接的href
执行此操作的原因是,通常,javascript:
URL会将浏览器重定向到评估该javascript的结果的纯文本版本。但如果结果是未定义的
,则浏览器将保持在同一页面上void(0)
只是一个简短的脚本,其计算结果为未定义您的a标记上应该始终有一个href。调用返回“undefined”的JavaScript函数就可以了。链接到“#”也是如此
InternetExplorer6中没有href的锚定标记不会应用a:hover
样式
是的,这是一种可怕的、轻微的反人类罪行,但总体来说,InternetExplorer6也是如此
我希望这有帮助
InternetExplorer6实际上是一项危害人类的重大犯罪。与javascript:void(0)代码>
#
将您滚动到页面顶部,但javascript:void(0)代码>没有
如果您正在对动态页面进行编码,这一点非常重要,因为用户不希望在单击页面上的链接时返回顶部。除了技术答案之外,javascript:void
表示作者做错了
没有充分的理由使用javascript:
pseudo-URL(*)。在实践中,如果有人尝试“书签链接”、“在新选项卡中打开链接”等操作,它将导致混乱或错误。现在人们已经习惯用鼠标中键点击新标签了:它看起来像一个链接,你想在一个新标签中阅读它,但结果证明它根本不是一个真正的链接,当鼠标中键点击时会产生不想要的结果,比如空白页或JS错误
是一种常见的替代方案,可以说不那么糟糕。但是,您必须记住从onclick
事件处理程序中返回false
,以防止链接被跟踪并向上滚动到页面顶部
在某些情况下,可能有一个实际有用的地方指向链接。例如,如果您有一个控件,可以单击该控件打开以前隐藏的
,则使用
链接到该控件是有意义的。或者,如果有一种非JavaScript的方式来做同样的事情(例如,“thispage.php?show=foo”将foo设置为可见,那么您可以链接到它
否则,如果一个链接只指向某个脚本,它就不是一个真正的链接,也不应该这样标记。通常的方法是将onclick
添加到
、
、或不带href
的
中,并以某种方式对其进行样式设置,以明确您可以单击它。这就是StackOverflow[在撰写本文时所做的;现在它使用href=“#”
]
这样做的缺点是您失去了键盘控制,因为您无法在span/div/bare-a上进行制表或使用空格激活它。这是否实际上是一个缺点取决于元素打算采取什么样的操作。通过在元素中添加tabIndex
,并监听空格键,您可以尝试模拟键盘的可交互性。但它永远不会100%再现真实的浏览器行为,尤其是因为不同的浏览器对键盘的响应不同(更不用说非视觉浏览器了)
如果您确实想要一个不是链接但可以通过鼠标或键盘正常激活的元素,那么您需要的是一个
(或者
对于简单的文本内容来说同样好)。如果需要,您可以随时使用CSS对其重新设置样式,使其看起来更像链接而不是按钮。但由于它的行为像一个按钮,这就是你应该如何标记它
(*:无论如何,在网站创作中。显然,它们对bookmarklet很有用。javascript:
pseudo-url在概念上很奇怪:一个定位器不指向某个位置,而是调用当前位置内的活动代码。它们给浏览器和webapps带来了巨大的安全问题,永远不应该被发现void
是一个用于返回未定义值的运算符,因此浏览器将无法加载新页面
Web浏览器将尝试获取用作URL的任何内容并加载它,除非它是返回null的JavaScript函数。例如,如果我们单击以下链接:
<a href="javascript:void(0)" id="loginlink">login</a>
<a href="javascript: alert('Hello World')">Click Me</a>
<a href="javascript: void(0)">I am a useless link</a>
void
运算符计算给定表达式,然后返回undefined。
它避免让人耳目一新
<a href="javascript:void(0)" onclick="callPrintFunction()">Print</a>
function myVoid(expr) {
return undefined;
}
javascript:void window.open("http://example.com/")