如果控制台中的Iframe clientHeight不同,则需要获得真实的Iframe车身高度(angular2)
普朗克: 当我通过ElementRef导航时,我得到以下高度: 当我在浏览器控制台中返回值时,我得到了一个错误的值 目标:将iframe调整为iframes内容的真实高度 问题:iframes身体的实际高度与我得到的不同。我做错了什么如果控制台中的Iframe clientHeight不同,则需要获得真实的Iframe车身高度(angular2),angular,iframe,height,Angular,Iframe,Height,普朗克: 当我通过ElementRef导航时,我得到以下高度: 当我在浏览器控制台中返回值时,我得到了一个错误的值 目标:将iframe调整为iframes内容的真实高度 问题:iframes身体的实际高度与我得到的不同。我做错了什么 多谢各位 获取iFrame的准确高度并不像它应该的那样简单,因为您可以选择六种不同的属性进行检查,但没有一种可以给出一个持续正确的答案。我提出的最简单的解决方案是这个函数,只要不使用CSS溢出body标记,它就可以工作 function getIFrameHe
多谢各位 获取iFrame的准确高度并不像它应该的那样简单,因为您可以选择六种不同的属性进行检查,但没有一种可以给出一个持续正确的答案。我提出的最简单的解决方案是这个函数,只要不使用CSS溢出body标记,它就可以工作
function getIFrameHeight(){
function getComputedBodyStyle(prop) {
return parseInt(
document.defaultView.getComputedStyle(document.body, null),
10
);
}
return document.body.offsetHeight +
getComputedBodyStyle('marginTop') +
getComputedBodyStyle('marginBottom');
}
这是IE9版本,对于更长的IE8版本,请参见此
如果确实溢出了正文,并且无法修复代码来停止此操作,则使用文档的离视
或滚动高度
属性。documentElement
是更好的选择。两者都有优点和缺点,最好只是对两者进行测试,看看哪个对你有用
最可靠的方法是计算页面上最低元素底部的位置。这在现代浏览器中非常有效,但在旧浏览器中速度较慢
function getMaxElement(elements) {
var
elementsLength = elements.length,
elVal = 0,
maxVal = 0;
for (var i = 0; i < elementsLength; i++) {
elVal = elements[i].getBoundingClientRect()[side] + getComputedStyle('marginBottom',elements[i]);
if (elVal > maxVal) {
maxVal = elVal;
}
}
return maxVal;
}
函数getMaxElement(元素){
变量
elementsLength=elements.length,
elVal=0,
maxVal=0;
对于(变量i=0;i获取iFrame的准确高度并不像它应该的那样简单,因为您可以选择六种不同的属性进行检查,但没有一种属性能够给出一个持续正确的答案。我提出的最简单的解决方案是这个函数,只要不使用CSS溢出body标记,它就可以工作
function getIFrameHeight(){
function getComputedBodyStyle(prop) {
return parseInt(
document.defaultView.getComputedStyle(document.body, null),
10
);
}
return document.body.offsetHeight +
getComputedBodyStyle('marginTop') +
getComputedBodyStyle('marginBottom');
}
这是IE9版本,对于更长的IE8版本,请参见此
如果确实溢出了正文,并且无法修复代码来停止此操作,则使用文档的离视
或滚动高度
属性。documentElement
是更好的选择。两者都有优点和缺点,最好只是对两者进行测试,看看哪个对你有用
最可靠的方法是计算页面上最低元素底部的位置。这在现代浏览器中非常有效,但在旧浏览器中速度较慢
function getMaxElement(elements) {
var
elementsLength = elements.length,
elVal = 0,
maxVal = 0;
for (var i = 0; i < elementsLength; i++) {
elVal = elements[i].getBoundingClientRect()[side] + getComputedStyle('marginBottom',elements[i]);
if (elVal > maxVal) {
maxVal = elVal;
}
}
return maxVal;
}
函数getMaxElement(元素){
变量
elementsLength=elements.length,
elVal=0,
maxVal=0;
对于(变量i=0;i