Using jQuery in Tampermonkey

Michael Jarvis picture Michael Jarvis · Jun 22, 2013 · Viewed 21.5k times · Source

I'm using Chrome 27.0.1453.116 m and have enabled "Experimental Javascript", however I'm unable to get jQuery to run on Tampermonkey.

I have tried:

// ==UserScript==
// @name       My Fancy New Userscript
// @require    http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js
// ==/UserScript==

var $ = unsafeWindow.jQuery;
var jQuery = unsafeWindow.jQuery;

However, I get an error on the line var $ = unsafeWindow.jQuery; highlighting unsafeWindow saying unsafeWindow was used before it was defined. How to fix this?

Answer

tuff picture tuff · Sep 16, 2013

EDIT: Since Greasemonkey 2.0 you do not (and cannot) use unsafeWindow.jQuery for getting the host page's instance of jQuery. You just use window.jQuery, and // @grant none (or @grant whatever other special APIs you need for non-jQuery things).

Sources: https://github.com/greasemonkey/greasemonkey/issues/1952
http://www.greasespot.net/2014/06/greasemonkey-20-release.html

Tampermonkey currently (Feb 2015) seems to work similarly by default settings. (archived on 2015-03-12 from http://tampermonkey.net/faq.php#Q404)


old outdated answer below:

Add a directive // @grant unsafeWindow. Also, if you are getting your jQuery reference from the host window object, you won't need the @require line.