Jshint: JSHint menandai "javascript:void(0);" sebagai URL JS

Dibuat pada 23 Jun 2014  ·  8Komentar  ·  Sumber: jshint/jshint

Jika saya menetapkan href elemen ke javascript:void(0); (sebagai lawan dari # ), seperti ini:

$('#foobar').attr("href", "javascript:void(0);");

JSHint mengambil konstruksi javascript:void(0); sebagai URL Skrip:

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

padahal sebenarnya itu tidak melakukan apa-apa dan valid secara semantik. Seharusnya ada pengecualian untuk jenis URL Skrip ini.

Komentar yang paling membantu

Letakkan saja baris ini di bagian atas file Anda untuk menonaktifkan peringatan:

/*jshint scripturl:true*/

Tetapi cara terbaik adalah menggunakan "#" ke dalam href dan mengembalikan "false" untuk semua acara javascript:

<a href="#" onclick="doSomething();return false;">my link</a>

Semua 8 komentar

Tidak apa-apa .

Mungkin ini harus menjadi peringatan khusus? Saya tidak bisa menjadi satu-satunya yang bingung dengan ini.

Kamu bukan.

Letakkan saja baris ini di bagian atas file Anda untuk menonaktifkan peringatan:

/*jshint scripturl:true*/

Tetapi cara terbaik adalah menggunakan "#" ke dalam href dan mengembalikan "false" untuk semua acara javascript:

<a href="#" onclick="doSomething();return false;">my link</a>

Tidak, cara terbaik adalah menjauhkan JavaScript dari markup dan atribut Anda :P

@rwaldron : perbaikan, memang

$('#foobar').attr("href", "#").click(function() {
  // do it
});

Melewati jslint:
$('#foobar').attr('href','javascript'+String.fromCharCode(58)+'void(0);');

@MikeGodin terlihat seperti bug yang terpisah.

@kcampion menempatkan # dan mengembalikan false tidak selalu sesuai keinginan
dalam kasus saya, saya tidak ingin hash muncul

Apakah halaman ini membantu?
0 / 5 - 0 peringkat