12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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
- }
- }
|