Jshint: يضع JSHint علامة "javascript: void (0)؛" كعنوان URL لـ JS

تم إنشاؤها على ٢٣ يونيو ٢٠١٤  ·  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 وإرجاع "false" لجميع أحداث جافا سكريبت:

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

ال 8 كومينتر

لا تهتم .

ربما يجب أن يكون هذا تحذيرًا متخصصًا؟ لا يمكنني أن أكون الوحيد الذي أربك هذا الأمر.

أنت لست.

فقط ضع هذا السطر أعلى ملفك لتعطيل التحذير:

/*jshint scripturl:true*/

لكن أفضل طريقة هي استخدام "#" في href وإرجاع "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 وضع # وإرجاع خطأ ليس دائما ديناجبال
في حالتي لا أريد ظهور التجزئة

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

voronianski picture voronianski  ·  8تعليقات

nzakas picture nzakas  ·  10تعليقات

damyanpetev picture damyanpetev  ·  4تعليقات

jugglinmike picture jugglinmike  ·  6تعليقات

derekdata picture derekdata  ·  11تعليقات