2012-03-08 9 views
91

こんにちは私は3つのjavascriptファイルを持っています。JSLint:定義される前に使用されました

  • jquery.js私はエラー 'jQueryの' の前に使用されていた取得私は

    jQuery.noConflict() 
    jQuery(document).ready(function($) { 
    // .... 
    }); 
    

    を持って

  • utility.js
  • file1.js file1.jsで

それが定義されました。 が定義される前に 'document'が使用されていました。

どうすればこの警告を安全に取り除くことができますか?それが使用されている場合、私は私のutility.jsに

var document = document || {}; 

、その後行う場合

、それがFirefoxでIEでヌルとOKでしょう。

これに最適な解決策は何ですか?

+0

[JS Lint: 'shortcut'が定義される前に使用されていた可能性のある複製](http://stackoverflow.com/questions/8134049/js-lint-shortcut-was-used-before-it-was-defined) )。また、オプションで[ブラウザ*を使用する]が選択されていることを確認してください。 –

+0

@ ChunpingWangあなたがまだSO上で活動していたことに気付きました。この質問には受け入れられた回答がありませんでした。これらの回答のいずれかが、それらを受け入れられるようにするために必要なものが欠けていますか?クエンティンの答えが尋ねられたように問題を解決するように思える。あなたの質問に答えるために必要な追加情報? – ruffin

答えて

167

the documentation

からJSLintも、このファイルで使用される変数は、他のファイルで定義されたことをJSLintに示すことができます/ *グローバル* /ディレクティブを認識しています。コメントには、コンマ区切りの名前リストを含めることができます。それぞれの名前の後には、オプションでコロンとtrueまたはfalse、変数がこのファイルによって割り当てられる可能性があることを示すtrue、割り当てが許可されていないことを示すfalse(デフォルト)を続けることができます。このディレクティブは関数スコープを尊重します。

一部のグローバルはあらかじめ定義されています。 [ブラウザ(ブラウザ)を想定する]オプションを選択すると、Webブラウザによって提供される標準のグローバルプロパティ(documentやaddEventListenerなど)が事前定義されます。

例:

/*jslint browser: true*/ 
/*global $, jQuery*/ 
+25

注: 'global'の前にスペースを入れることはできないので、'/* global var、var2 */'は動作しません。'/ * global var、var2 * /'が動作する – radixhound

+4

Pluralは同等で、同様に動作します: '/ * globals * /'また変数のリストを追加するときには、より意味があります –

+2

JSLintの解は、あなたのファイルのすべてのファイルに行を追加する...これはひどいアドバイスです。 – Cerin

29

クエンティンが言うように、/*global*/ディレクティブがあります。ここで

は、(ファイルの先頭にこれを置く)例です。

/*global var1,var2,var3,var4,var5*/ 

初期global文が/*と同じ行にあるか、あるいはそれが壊れていることを確認します。

関連する問題