如何获得一些元素的实际宽度/高度加载后,其宽度/高度最初设置百分比

How to get actual width/height of some element after loading whose width/height originally set by PERCENTAGE?

本文关键字:高度 百分比 设置 加载 何获得 元素      更新时间:2023-09-26

我有一个iframe,其内容指向一个HTML文档。

在那个HTML文档中,有一个EMBED元素指向一个PDF文档。这个嵌入最初是用PERCENTAGE设置宽度和高度的(比如:width: 100%; height: 100%)。 我的问题是:

iframe加载后,我如何检索实际,绝对宽度和高度(在任何单位px, pt, em等)的嵌入元素。

我一直在尝试所有可能的js属性(宽度,高度,样式:clientWidth, clienttheight, offsetWidth, offsetHeight…)和jQuery以及(如outerWidth, outerHeight等),但似乎没有希望。

这应该会返回您需要的内容:

document.getElementById("id").clientHeight 
document.getElementById("id").clientWidth 

id是EMBED元素的唯一id。

查看更多信息:

https://developer.mozilla.org/en/DOM element.clientHeight

https://developer.mozilla.org/en/DOM element.clientWidth

http://jsfiddle.net/purmou/9XXwf/2/

使用jQuery的width()height()。目前,它查找对象的总宽度/高度,包括填充,边框,边距等。如果您想查找元素本身的宽度和高度,不包括边框等,请将var width = this.offsetWidth;替换为var width = $(this).width();,将var height = this.offsetHeight;替换为var height = $(this).height();

你应该使用。offsetwidth和。offsetheight属性。注意!它们属于元素,而不是element.style.

var width = document.getElementById('foo').offsetWidth; 

它适用于所有现代浏览器。但是要小心!如果最近对元素做了某些DOM修改,offsetWidth/offsetHeight可以返回0。在修改元素之后,可能需要在setTimeout调用中调用这段代码。也许这就是你的问题?