我想知道javascript:;
和javascript:void(0);
之间的区别,如果我在href
a
锚点(链接)
<a href="javascript:;" onclick="DoSomething();">Link</a>
<a href="javascript:void(0);" onclick="DoSomething();">Link</a>
我看到它们在所有浏览器上的行为相同,但技术上有什么区别?
此致 Magdy
答案 0 :(得分:17)
一个运行没有语句的JavaScript,另一个运行JavaScript来评估语句0
,然后返回undefined
。
答案 1 :(得分:6)
我同意David的观点,不应该使用它。 javascript伪协议可以在某些浏览器中将页面置于等待状态,这可能会产生意想不到的后果。作为一个例子,我花了几个小时试图调试一个Web应用程序,当有人在页面加载后不久点击了一个javascript:链接时崩溃IE6。事实证明,进入等待状态的页面与尝试初始化的Flash电影相冲突。我通过用以下格式替换链接来解决问题:
<a href="#" onclick="DoSomething(); return false;">Link</a>
“return false”会阻止链接实际被跟踪。
答案 2 :(得分:5)
只有后者javascript:void(0);
更具可读性且是一个接受的约定,表示此代码不执行任何操作。
值得注意的是,行业标准在这种语法方面已经取得了很大进展。你应该研究渐进增强。