New file |
0,0 → 1,82 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
|
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
|
http://dojotoolkit.org/community/licensing.shtml |
*/ |
|
dojo.provide("dojo.html.iframe"); |
dojo.require("dojo.html.util"); |
dojo.html.iframeContentWindow = function (iframe_el) { |
var win = dojo.html.getDocumentWindow(dojo.html.iframeContentDocument(iframe_el)) || dojo.html.iframeContentDocument(iframe_el).__parent__ || (iframe_el.name && document.frames[iframe_el.name]) || null; |
return win; |
}; |
dojo.html.iframeContentDocument = function (iframe_el) { |
var doc = iframe_el.contentDocument || ((iframe_el.contentWindow) && (iframe_el.contentWindow.document)) || ((iframe_el.name) && (document.frames[iframe_el.name]) && (document.frames[iframe_el.name].document)) || null; |
return doc; |
}; |
dojo.html.BackgroundIframe = function (node) { |
if (dojo.render.html.ie55 || dojo.render.html.ie60) { |
var html = "<iframe src='javascript:false'" + " style='position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;" + "z-index: -1; filter:Alpha(Opacity=\"0\");' " + ">"; |
this.iframe = dojo.doc().createElement(html); |
this.iframe.tabIndex = -1; |
if (node) { |
node.appendChild(this.iframe); |
this.domNode = node; |
} else { |
dojo.body().appendChild(this.iframe); |
this.iframe.style.display = "none"; |
} |
} |
}; |
dojo.lang.extend(dojo.html.BackgroundIframe, {iframe:null, onResized:function () { |
if (this.iframe && this.domNode && this.domNode.parentNode) { |
var outer = dojo.html.getMarginBox(this.domNode); |
if (outer.width == 0 || outer.height == 0) { |
dojo.lang.setTimeout(this, this.onResized, 100); |
return; |
} |
this.iframe.style.width = outer.width + "px"; |
this.iframe.style.height = outer.height + "px"; |
} |
}, size:function (node) { |
if (!this.iframe) { |
return; |
} |
var coords = dojo.html.toCoordinateObject(node, true, dojo.html.boxSizing.BORDER_BOX); |
with (this.iframe.style) { |
width = coords.width + "px"; |
height = coords.height + "px"; |
left = coords.left + "px"; |
top = coords.top + "px"; |
} |
}, setZIndex:function (node) { |
if (!this.iframe) { |
return; |
} |
if (dojo.dom.isNode(node)) { |
this.iframe.style.zIndex = dojo.html.getStyle(node, "z-index") - 1; |
} else { |
if (!isNaN(node)) { |
this.iframe.style.zIndex = node; |
} |
} |
}, show:function () { |
if (this.iframe) { |
this.iframe.style.display = "block"; |
} |
}, hide:function () { |
if (this.iframe) { |
this.iframe.style.display = "none"; |
} |
}, remove:function () { |
if (this.iframe) { |
dojo.html.removeNode(this.iframe, true); |
delete this.iframe; |
this.iframe = null; |
} |
}}); |
|