dojo - Accessing javascript library in iframe in greasemonkey script -
i'm trying access dojo within webapp, , having issues getting need. specifically, have webapp in iframe different versions of dojo loaded:
in firebug, can this:
window.dojo.version; // 1.7 window.frames[0].window.dojo.version; // 1.0 (note iframe in same domain parent)
in greasemonkey, can't find either version of dojo:
dojo // undefined window.dojo // undefined window.frames[0].window.dojo // undefined i started looking unsafewindow supposedly shouldn't use. gives me access window'd dojo, not iframe'd dojo 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 tried withdoc suspect i'm using 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 can try access dojo 1.0 in iframe? or if not that, @ least figure out how access dojo widgets defined in iframe using dojo do have access to?
i expect unsafewindow.frames[0].window.dojo.version; work when gm running on main page (see below). fact doesn't bug in opinion, lead gm dev might not agree. consider filing bug report.
however, greasemonkey processes frames/iframes though standalone pages (with exceptions). means script fire once main page , once each frame src matches @include/@exclude/@match directives. means things window.frames[0] not defined in every pass.
you can tell in right frame code this:
if (window.self == window.top.frames[0]) { //-- running in target frame unsafewindow.console.log ("dojo.version:", unsafewindow.dojo.version); } else unsafewindow.console.log ("these not droids... or, er something.");
Comments
Post a Comment