如果我将元素的href
分配给javascript:void(0);
(而不是#
),如下所示:
$('#foobar').attr("href", "javascript:void(0);");
JSHint 选择javascript:void(0);
构造作为脚本 URL:
PS C:\Users\hal9000\Development\strugee.github.com> grunt lint
Running "jshint:all" (jshint) task
js\main.js
30 | $('#lightbulb-icon').attr("href", "javascript:void(0);");
^ Script URL.
>> 1 error in 4 files
实际上它什么也没做并且在语义上是有效的。 这些类型的脚本 URL 应该有例外。
没关系。
也许这应该是一个专门的警告? 我不能是唯一一个对此感到困惑的人。
你不。
只需将此行放在文件顶部即可禁用警告:
/*jshint scripturl:true*/
但最好的方法是在 href 中使用“#”并为所有 javascript 事件返回“false”:
<a href="#" onclick="doSomething();return false;">my link</a>
不,最好的方法是让你的 JavaScript 远离你的标记和属性:P
@rwaldron :确实是整改
$('#foobar').attr("href", "#").click(function() {
// do it
});
通过 jslint:
$('#foobar').attr('href','javascript'+String.fromCharCode(58)+'void(0);');
@MikeGodin看起来像是一个单独的错误。
@kcampion放置 # 并返回 false 并不总是希望的
就我而言,我不想出现哈希
最有用的评论
只需将此行放在文件顶部即可禁用警告:
但最好的方法是在 href 中使用“#”并为所有 javascript 事件返回“false”: