if (!dojo._hasResource["dijit._base.window"]) { // _hasResource checks added by // build. Do not use // _hasResource directly in your // code. dojo._hasResource["dijit._base.window"] = true; dojo.provide("dijit._base.window"); dijit.getDocumentWindow = function(doc) { // summary // Get window object associated with document doc // With Safari, there is not way to retrieve the window from the // document, so we must fix it. if (dojo.isSafari && !doc._parentWindow) { /* * This is a Safari specific function that fix the reference to the * parent window from the document object. */ var fix = function(win) { win.document._parentWindow = win; for (var i = 0; i < win.frames.length; i++) { fix(win.frames[i]); } } fix(window.top); } // In some IE versions (at least 6.0), document.parentWindow does not // return a // reference to the real window object (maybe a copy), so we must fix it // as well // We use IE specific execScript to attach the real window reference to // document._parentWindow for later use if (dojo.isIE && window !== document.parentWindow && !doc._parentWindow) { /* * In IE 6, only the variable "window" can be used to connect events * (others may be only copies). */ doc.parentWindow.execScript("document._parentWindow = window;", "Javascript"); // to prevent memory leak, unset it after use // another possibility is to add an onUnload handler which seems // overkill to me (liucougar) var win = doc._parentWindow; doc._parentWindow = null; return win; // Window } return doc._parentWindow || doc.parentWindow || doc.defaultView; // Window } }