Tentando carregar o jquery no script tampermonkey

132

Estou escrevendo um script que entra na minha rede da faculdade quando a página de login é carregada.

O código tem a seguinte aparência

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

    });

O console mostra um erro dizendo

$ is not defined

Alguém pode me dizer o que está acontecendo aqui?

Jonah
fonte

Respostas:

303

Você precisa ter um @requireno cabeçalho do script do usuário para carregar o jQuery. Algo como:

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

(Selecionando a versão desejada na lista de versões disponíveis do jQuery )

Aardvark99
fonte
18
Por favor não use jquery-latest. blog.jquery.com/2014/07/03/dont-use-jquery-latest-js
8
Esteja avisado de que isso pode interferir na definição da própria página:$
Owen
1
@Owen e como é que vamos lidar com isso
Menashe
@Menasheh jQuery.noConflict () .
Dan Atkinson
Lembre-se também de que o próprio jQuery da página pode aparecer e prejudicar a @requireversão d. noConflicttambém ajudará com isso.
jinglesthula