そのため、 JSLintを使用してエラーを検出しようとしています。window
気に入らないオプションをいくつかオフにしましたが、グローバル変数を使用できるようにする方法がわかりません。さて、Yahoo Widgetオプションがありますが、それはやり過ぎです。
'window'を使用するとどうなりますか?なぜJSLintはそれがエラーを引き起こしていると言うのでしょうか?
そのため、 JSLintを使用してエラーを検出しようとしています。window
気に入らないオプションをいくつかオフにしましたが、グローバル変数を使用できるようにする方法がわかりません。さて、Yahoo Widgetオプションがありますが、それはやり過ぎです。
'window'を使用するとどうなりますか?なぜJSLintはそれがエラーを引き起こしていると言うのでしょうか?
/*jslint browser: true*/
これに対する正しい解決策でした。2017-07-07以降、グローバルディレクティブを手動で設定する必要があります。JSLintドキュメントから:
/ * global * /ディレクティブは、このファイルで使用できる一連のグローバル(通常は関数および関数を含むオブジェクト)を指定するために使用されます。これは、ES6モジュールが登場する前に、ブラウザでソースファイルをリンクするために一般的に使用されていました。グローバル変数の使用は強くお勧めしませんが、残念ながらWebブラウザーではグローバル変数を使用する必要があります。/ * global * /ディレクティブは、「ブラウザーの想定」オプションが選択されている場合にのみ使用できます。
したがって、以下を使用する必要があります。
/*jslint browser */
/*global window */
スクリプトに次のようにコメントするだけです。
/*global window */
... your script goes here
このコメントは、別の場所で定義されているJSLintに通知しwindow
ます。
参照:http ://www.JSLint.com/lint.html 、
/* global */
JSLintは、このファイルで使用されている変数が他のファイルで定義されていることをJSLintに示すことができるコメントも認識します。コメントには、名前のコンマ区切りリストを含めることができます。各名前の後にはオプションでコロンを付けることができ、trueまたはfalseのいずれかです。trueは変数がこのファイルによって割り当てられる可能性があることを示し、falseは割り当てが許可されないことを示します。これはデフォルトです。
スクリプトにコメントを適用せずにウィンドウをデフォルトでグローバルにしたい場合は、ローカルファイルの関数predef:["window"]
内のオブジェクトリテラルパラメータに追加できます。JSLINT
jslint.js
ところで、私はpredef:["$","window"]
jQueryをグローバルにするためにも使用しています。
アップデート:
この答えは2009年に正しかった。今のところ、MattClarkson/*jslint browser: true*/
が提供するソリューションを使用する必要があります。
グローバルオブジェクトとして認識していることをJSLintに通知するwindow
には、ファイルの先頭に次のディレクティブを追加します。
/*global window*/
以前は次のものを使用できました。
/*jslint browser: true */
しかし、これはもはや機能していないようです。さて、オプションに関するJSHintヘルプによるとbrowser
:
それは供給しません
self
またはwindow
; 恐ろしいグローバルオブジェクトのこれらのエイリアスを自分でリクエストする必要があります。
その変更がいつ行われたかはわかりませんが、しばらくの間、私は窮地に立たされました。
すべての警告を取り除くには、このコードで上記の両方の回答を使用する必要がありました。
/*jslint browser:true*/
/*global window*/
// eventBoiler v0.1.1 by @ryanpcmcquen
// https://github.com/ryanpcmcquen/eventBoiler
(function (win, doc) {
'use strict';
win.eventBoiler = function (selector, typeOfEvent, func) {
doc.querySelector(selector).addEventListener(typeOfEvent, func);
};
win.eventBoiler.all = function (selectors, typeOfEvent, func) {
Array.prototype.slice.call(doc.querySelectorAll(selectors)).map(function (i) {
i.addEventListener(typeOfEvent, func);
});
};
}(window, document));
だから私にとって、これはJSLintWebサイトを使用するときの解決策です:
/*jslint browser:true*/
/*global window*/
すべてのファイルでこれを指定したくない場合は、次のようにeslintrc構成ファイルでグローバルに設定できます。
"globals": {
"window": true,
}