[英]How to get scroll height from iframe or outer div
我正在尝试获得整个屏幕的高度,直到发生滚动为止(内容的总高度),这是我尝试过的代码,但是我将值设为0,例如,我猜测整个屏幕的高度将大于1400px如何获得确切的高度
<div id="sample">
<iframe src="https://en.wikipedia.org/wiki/Main_Page" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;height:100%;width:100%;position:absolute;top:0x;left:0px;right:0px;bottom:0px" height="100%" width="100%" allowfullscreen id="frame" onload="myFunction()">
</iframe>
<div style="display:block; clear:both;"></div>
</div>
<script>
function myFunction() {
var elmnt = document.getElementById("sample");
var y = elmnt.scrollHeight;
var x = elmnt.scrollWidth;
var sample = "Height: " + y + "px<br>Width: " + x + "px";
alert(sample);
}
</script>
之所以得到height = 0
是因为iframe内容的高度与父div元素无关,而是与iframe的文档对象有关,因此必须访问该文档对象:
function myFunction() {
var elmnt = document.getElementById("frame");
var win = elmnt.contentWindow;
var x = win.innerWidth;
var y = win.innerHeight;
var iframe = "Height: " + y + "px<br>Width: " + x + "px";
alert(iframe);
}
但这由于同源策略而无法正常工作,并且您将得到以下错误:
Error: Permission denied to access property "innerWidth"
要访问DOM,您必须使用诸如phantomjs (基于Node.js)之类的无头浏览器来解析页面,这必须在服务器端完成,这是一种完全不同的方法,超出了本问题的范围,但是在如果您想尝试,可以找到很多示例 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.