Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Accessing JS library in iframe from greasemonkey #1625

inanutshellus opened this Issue · 1 comment

2 participants


I'm trying to access Dojo within my webapp, and having issues getting what I need. Specifically, I have a webapp in an iframe with different versions of Dojo loaded:

In Firebug, I can do this:

window.dojo.version; // 1.7
window.frames[0].window.dojo.version; // 1.0
(Note iframe is in same domain as parent)

In GreaseMonkey, I can't find either version of Dojo:

dojo // undefined
window.dojo // undefined
window.frames[0].window.dojo // undefined 

I started looking into unsafeWindow which supposedly I shouldn't use. It gives me access to the window'd Dojo, but not the iframe'd dojo I actually want.

unsafeWindow.dojo.version // 1.7 (wrong version)
unsafeWindow.frames[0].dojo // undefined 
unsafeWindow.frames[0].window.dojo // undefined
window.frames[0].window.dojo // undefined
window.frames[0].unsafeWindow // undefined
window.frames[0].window.unsafeWindow // undefined

I've also tried withDoc but I suspect I'm using it incorrectly:

unsafeWindow.dojo.withDoc(window.frames[0].window, function(){
    var dijit = unsafeWindow.dijit; // seems wrong; doesn't work.
    var widget = dijit.byId('someWidgetInsideIframe');
    console.log(widget); // undefined
}, this);

Any suggestions on other things I can try to get access to Dojo 1.0 in the iframe? Or if not that, at least figure out how to get access to dojo widgets defined in the iframe using the Dojo I do have access to?

FWIW, I posted this question in June on StackOverflow:

Mod it up. ;-)


This is a support question seeking an answer, not a bug/issue seeking a resolution. It should be on the mailing list (!msg/greasemonkey-users/ ).

But, that said, as of Greasemonkey 1.0 if you want to be interacting heavily with content in the page, and here you clearly do, the right thing to do is use @grant none. Then things should work just like you're operating in the page.

@arantius arantius closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.