我的页面上有两个iframe。一种称为导航,另一种称为内容。在加载Iframe时,我调用以下函数:
function resizeIframe(obj) {
if (obj.contentWindow != undefined && obj.contentWindow != null && obj.contentWindow.document != undefined && obj.contentWindow.document != null) {
obj.style.height = obj.contentWindow.document.body.scrollHeight + 20 + 'px';
obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';
}
}
我在iframe上调用上面这个函数
<iframe src="Taxonomy.htm" name="navigation" id="navigation" width="250" height="900" seamless="true" onload="resizeIframe(this)"></iframe>
<div id="divContent"><script>
document.write('<iframe src="' + newPath + '" id="content" name="content" width="700" height="900" seamless="true" onload="javascript:resizeIframe(this)">');
document.write('</iframe>');
</script></div>
当点击导航doContentLoad()
中的链接并且函数执行如下操作时,我调用另一个名为Iframe
的函数:
function doContentLoad() {
var navFrameElem = indow.parent.document.getElementById("navigation").contentWindow || window.parent.document.getElementById("navigation").contentDocument;
if (navFrameElem != null && navFrameElem.document)
navFrameElem = navFrameElem.document;
if (navFrameElem != null) {
if (navFrameElem.body.scrollHeight > 900) { window.parent.document.getElementById("navigation").parentNode.parentNode.style.height = navFrameElem.body.scrollHeight + 130 + 'px';
window.parent.document.getElementById("navigation").style.height = navFrameElem.body.scrollHeight + 130 + 'px';
navFrameElem.body.style.height = navFrameElem.body.scrollHeight + 'px';
}
}
var contentFrameElem = window.parent.document.getElementById("content").contentWindow || window.parent.document.getElementById("content").contentDocument;
if (contentFrameElem != null && contentFrameElem.document != null && contentFrameElem.document) contentFrameElem = contentFrameElem.document; window.parent.document.getElementById("content").style.height = contentFrameElem.body.scrollHeight + 30 + 'px';
}
我在两个函数的Firefox : Error: Permission denied to access property 'document'
中都收到以下错误。
在IE I get: invalid calling object.
如何在此处获取文档对象?或者更好地调整Iframes
的大小?
答案 0 :(得分:1)
因为您包含PDF而不是HTML页面,所以iframe contentWindow没有DOM,因此JavaScript无法访问iFrame中的任何属性。