试图将jquery加载到tampermonkey脚本中

Jon*_*nah 111 javascript jquery tampermonkey

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

代码如下所示

// ==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);

    });
Run Code Online (Sandbox Code Playgroud)

控制台显示错误说

$ is not defined
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这里发生了什么?

小智 277

您需要@require在用户脚本标头中加载jQuery.就像是:

// @require http://code.jquery.com/jquery-3.4.1.min.js
Run Code Online (Sandbox Code Playgroud)

(选择所需的jQuery Core版本,例如从这里)

  • 请不要使用`jquery-latest`.https://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/ (13认同)
  • 请注意,这可能会干扰页面自己对`$`的定义 (7认同)
  • @Menasheh [jQuery.noConflict()](https://api.jquery.com/jquery.noconflict/)。 (3认同)

Moh*_*jib 14

对于未来的谷歌用户来说,

如果您已经使用了上述方法,但您的脚本似乎仍然没有加载 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 
              ^ here should be correct amount of spaces
...
Run Code Online (Sandbox Code Playgroud)