Tampermonkeyと互換性を持たせるために、Grease Monkey用に記述したコードを変更しようとしています。私の@require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js にもかかわらず、タンパーモンキーは '$'が定義されていないと言い続けます。 requireはGreasemonkeyで動作します。
Tampermonkeyのインストールされた関数の概要は、JQueryが必要とするものを認識しています。
// ==UserScript==
// @name Function
// @version 1
// @run-at document-end
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
// ==/UserScript==
var userIP;
$.ajax({
url: "https://api.ipify.org/?format=json", // Getting user Ip Address
async: false,
dataType: 'json',
success: function(data) {
userIP = data.ip; // Saving user Ip Address
}
});
あなたはそれがエディターのみにあると言うので、これはおそらくTampermonkeyの構文チェックで必要なスクリプトをロードせず、コードチェックプロセスの一部としてそれらを使用しています。したがって、変数がユーザースクリプト自体のどこにも宣言されていないことがわかり、警告が表示されます。スクリプトは期待どおりに機能するはずです。
メッセージが気になる場合は、次のようにスクリプトの先頭で$
変数を明示的に宣言することにより、メッセージをクリアできます。
var $ = window.jQuery;//OR
var $ = window.$;
Greasemonkeyは [〜#〜] jshint [〜#〜] リンターと組み合わせた CodeMirror テキストエディターを使用します。
JSHINTがコード外で宣言されたグローバル変数を認識できるようにするには、インラインコメントを使用してそれらを定義する必要があります。たとえば、JSHINTにjqueryについて伝えるには、次のようにします。
/* globals $ */