Tampermonkey jQuery 要求不工作

Tampermonkey jQuery require not working

我正在尝试修改我为 Grease Monkey 编写的一段代码,使其与 Tampermonkey 兼容。尽管我的@require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js,Tamper monkey 一直说“$”未定义。该要求适用于 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 使用 CodeMirror text editor combined with the JSHINT linter。

为了让 JSHINT 识别在您的代码之外声明的全局变量,您需要使用内联注释来定义它们。例如,要告诉 JSHINT 关于 jquery,请使用:

/* globals $ */

https://jshint.com/docs/#inline-configuration