Trying to load jquery into tampermonkey script
JavascriptJqueryTampermonkeyJavascript Problem Overview
I am writing a script which logs into my college network when the login page is loaded.
The code looks as follows
// ==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);
});
The console shows a error saying
$ is not defined
Can someone tell me what is going on here?
Javascript Solutions
Solution 1 - Javascript
You need to have a @require
in the user script header to load jQuery. Something like:
// @require http://code.jquery.com/jquery-3.4.1.min.js
(Selecting your desired version from the of list of available versions of jQuery)
Solution 2 - Javascript
For future googlers,
If you have used the above method and still jQuery doesn't seem to be loaded by your script try looking at the spaces, And try to match the indentation with the rest of the header. Apparently the indentation is important.
Faulty:
// ==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==
Correct:
// ==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==