我有一个网页,它在iframe中嵌入了另一个页面。我希望外部文档中的JavaScript函数来获取iframe中文档的大小(以像素为单位)。
我一直在探索 DOM 和我能找到的唯一与width
相关的属性,height
给出 iframe 本身的高度,它比其中的文档小。
例如
<iframe src="tall_page.php" id="my_iframe" style="height: 101px"></iframe>
...
var i = document .getElementById ("my_iframe");
i = i .contentDocument .body;
alert (i .offsetHeight); // or scrollHeight or clientHeight
以上将给出"101"。我追求的值是整个内容文档的大小,而不是框架 - 而不仅仅是<body>
:例如,如果CSS给出html{padding:x}
,我希望它入。
如何获取此值?
使用 jQuery 这应该可以工作:
var height = $("my_iframe").height();
var width = $("my_iframe").width();
希望有帮助
我让它使用contentWindow对象工作。
我认为这里的想法是获得一个元素,您在 iframe 中设置。 在我的示例中,我使用 css 将 iframe 主体设置为 3000px,并让它工作。
请记住,由于您正在访问 iframe 的数据,您需要遵守同源政策
这是我的例子:
内嵌框架.html
<!DOCTYPE html>
<html lang='en'>
<head>
<title>My Iframe</title>
</head>
<body id='mybody' style='width:3000px;'>
Hello!
</body>
</html>
索引.html
<!DOCTYPE html>
<html lang='en'>
<head>
<title>My Test</title>
<script>
window.onload = function() {
var f = document.getElementById('myiframe');
console.dir(f.contentWindow.document.getElementById('mybody').clientWidth);
}
</script>
</head>
<body>
<iframe id='myiframe' src='iframe.html' height='480' width='640'>
</iframe>
</body>
</html>
希望有帮助。