When I googled how to use jQuery in a Greasemonkey script — a script to run on a web page that already loads some other, conflicting, JavaScript framework, like Prototype — I found no script that worked. Not a fucking one. They all contained very wrong bits, and I wander why they're still published. They're still indexed so that people like me can experience more pain. Here's what I came up with after much labor. I believe it is fail-proof.
// ==UserScript== // @name name // @namespace namespace // @description Does jQuery stuff while playing nice with other JavaScript frameworks // @author Caroline Schnapp // @homepage http://11heavens.com/using-greasemonkey-to-load-and-use-jQuery // @include * // ==/UserScript== // Add jQuery var script = document.createElement('script'); script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'; document.getElementsByTagName('head')[0].appendChild(script); // When jQuery is loaded script.addEventListener('load', function(){ jQuery = unsafeWindow['jQuery']; jQuery.noConflict(); /* You put your jQuery code here, which must use the jQuery namespace. See Note. */ }, false);
My code makes the following assumptions:
jQuery(function {});
construct in your code later on.