尝试将 jquery 加载到篡改猴子脚本中

2022-08-30 02:40:48

我正在编写一个脚本,该脚本在加载登录页面时登录到我的大学网络。

代码如下所示

// ==UserScript==
// @name       My Fancy New Userscript
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  enter something useful
// @match      <College login page>
// @copyright  2012+, You
// ==/UserScript==    
$(document).ready(function() {

    var usr=document.getElementsByName("username");

    var pass = document.getElementByName("password");

    usr.value="usrname";    
    pass.value="password";    

    var submitButton = document.querySelector ('input[type="submit"][value="Login"]');

    var clickEvent  = document.createEvent ('MouseEvents');

    clickEvent.initEvent ('click', true, true);

    submitButton.dispatchEvent (clickEvent);

    });

控制台显示错误,指出

$ is not defined

有人能告诉我这是怎么回事吗?


答案 1

您需要在用户脚本头中有一个来加载jQuery。像这样:@require

// @require http://code.jquery.com/jquery-3.4.1.min.js

(从jQuery的可用版本列表中选择所需的版本)


答案 2

对于未来的谷歌用户,

如果您已经使用了上述方法,并且jQuery似乎仍然没有被您的脚本加载,请尝试查看空格,并尝试将缩进与标头的其余部分相匹配。显然,缩进很重要。

错误:

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://stackoverflow.com/*
// @require http://code.jquery.com/jquery-3.4.1.min.js 
// @grant        none
// ==/UserScript==

正确:

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://stackoverflow.com/*
// @require      http://code.jquery.com/jquery-3.4.1.min.js 
// @grant        none
// ==/UserScript==