New file |
0,0 → 1,44 |
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 |
} |
|
} |