Wenn ich href
eines Elements javascript:void(0);
(im Gegensatz zu #
), so:
$('#foobar').attr("href", "javascript:void(0);");
JSHint greift das Konstrukt javascript:void(0);
als Skript-URL auf:
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
wenn es tatsächlich nichts tut und semantisch gültig ist. Für diese Arten von Skript-URLs sollte es eine Ausnahme geben.
Egal .
Vielleicht sollte dies eine spezielle Warnung sein? Ich kann nicht der einzige sein, den das verwirrt hat.
Sie nicht.
Fügen Sie einfach diese Zeile oben in Ihre Datei ein, um die Warnung zu deaktivieren:
/*jshint scripturl:true*/
Aber der beste Weg ist, "#" in die href zu verwenden und "false" für alle Javascript-Ereignisse zurückzugeben:
<a href="#" onclick="doSomething();return false;">my link</a>
Nein, der beste Weg ist, Ihr JavaScript aus Ihrem Markup und Ihren Attributen herauszuhalten :P
@rwaldron :
$('#foobar').attr("href", "#").click(function() {
// do it
});
Übergibt jslint:
$('#foobar').attr('href','javascript'+String.fromCharCode(58)+'void(0);');
@MikeGodin sieht aus wie ein separater Fehler.
@kcampion # setzen und false zurückgeben ist nicht immer ein Wunsch
In meinem Fall möchte ich nicht, dass Hash erscheint
Hilfreichster Kommentar
Fügen Sie einfach diese Zeile oben in Ihre Datei ein, um die Warnung zu deaktivieren:
Aber der beste Weg ist, "#" in die href zu verwenden und "false" für alle Javascript-Ereignisse zurückzugeben: