Jshint: JSHint 标记“javascript:void(0);” 作为 JS 网址

创建于 2014-06-23  ·  8评论  ·  资料来源: jshint/jshint

如果我将元素的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>

所有8条评论

没关系

也许这应该是一个专门的警告? 我不能是唯一一个对此感到困惑的人。

你不。

只需将此行放在文件顶部即可禁用警告:

/*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 并不总是希望的
就我而言,我不想出现哈希

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

voronianski picture voronianski  ·  8评论

damyanpetev picture damyanpetev  ·  4评论

Sriram-Ramaswami picture Sriram-Ramaswami  ·  5评论

Guichaguri picture Guichaguri  ·  8评论

NemoStein picture NemoStein  ·  7评论