Skip to content Skip to sidebar Skip to footer

Trying To Map SomeFunction.jQuery To "$"

I found a function (via this person's github) that I might use in my script that mimics the functionality of an API object. Here's the relevant code from the link: unsafeWindow = (

Solution 1:

You would map $ to unsafeWindow.jQuery like so:

unsafeWindow    = ( function () {
    var dummyElem   = document.createElement('p');
    dummyElem.setAttribute ('onclick', 'return window;');
    return dummyElem.onclick ();
} ) ();

var $ = unsafeWindow.jQuery;

// Now you can use the page's jQuery. EG:
$("body").append ('<p>Content added by unsafeWindow.jQuery</p>');


But keep in mind:

  1. This is a Hack, and it will probably stop working around Chrome version 28.

  2. It may still fail due to a race condition about when userscripts fire. To fix that, add // @run-at document-end to the userscript's metadata block.

  3. Don't do things this way! It will only cause grief, side effects and maintenance headaches.

    For userscripts: use this technique (best cross-browser)  or  this technique (relies on page's jQuery, but the example shows how to use GM_ functions too).

    For full extensions or content scripts:, use this technique (use the manifest.json and keep everything properly sandboxed).


Post a Comment for "Trying To Map SomeFunction.jQuery To "$""