我如何获得计算风格?

任何人都可以请帮我一个脚本..或一种方式来获得的价值

height : 1196px; width: 284px; 

从计算的样式表(webkit)。 我知道IE是不同的 – 像往常一样。 我无法访问iframe(跨域) – 我只需要高度/宽度。

我需要的屏幕截图(用红色圈起来)。 我如何访问这些属性?

在这里输入图像描述

资源

 <iframe id="frameId" src="anotherdomain\brsstart.htm"> <html id="brshtml" xmlns="http://www.w3.org/1999/xhtml"> \--I WANT THIS ELEMENTS COMPUTED BROWSER CSS HEIGHT/WIDTH <head> <title>Untitled Page</title> </head> <body> BLA BLA BLA STUFF </body> </html> \--- $('#frameId').context.lastChild.currentStyle *This gets the actual original style set on the other domain which is "auto" *Now how to getComputed Style? </iframe> 

我得到的最接近的就是这个

 $('#frameId').context.lastChild.currentStyle 

这给了我的HTML元素的实际风格是“自动”,这是真的,因为它是什么在iframed文件上设置。

如何获得所有浏览器用来计算滚动条的计算风格,并检查元素值?

使用Tomalaks答案我想出了这个可爱的webkit脚本

 window.getComputedStyle(document.getElementById("frameId"), null).getPropertyValue("height") 

要么

 window.getComputedStyle(document.getElementById("frameId"), null).getPropertyCSSValue("height").cssText 

结果150px

相同

 $('#frameId').height(); 

所以我让他们在头部添加一个“brshtml”的ID–也许这会帮助我更容易地select元素。 Webkit检查显示我现在html#brshtml,但我不能使用getelementbyidselect它

看到这个答案 。

这不是jQuery,但在Firefox,Opera和Safari中,您可以使用window.getComputedStyle(element)获取window.getComputedStyle(element)的计算样式,在IE中,您可以使用element.currentStyle 。 返回的对象在每种情况下都是不同的,我不确定使用Javascript创build的元素和样式有多好,但也许它们会有用。

iframe对我来说高了150px。 如果它的内容是1196px的高(事实上,你似乎正在探索html节点,根据截图),这就是你想要得到的,那么你应该导航到iframe的文档的DOM,并应用上述技术。

查看https://developer.mozilla.org/en-US/docs/Determining_the_dimensions_of_elements

使用.clientWidth在px中获得整数宽度。

 <div id="mydiv" style="border:1px solid red;">This is DIV contents.</div> <button onclick="alert( document.getElementById('mydiv').clientWidth);"> Click me to see DIV width in px </button> 

jQuery解决scheme:

 $(".element").outerWidth( true ); //A Boolean indicating whether to include the element's //margin in the calculation. 

说明 :获取匹配元素集合中第一个元素( 包括填充和边框)当前计算宽度 。 返回值的整数(不带“px”);如果在空的元素集上调用,则返回null。

你可以在api.jquery.com上阅读关于outerWidth / outerHeight的更多信息

注意:选中的元素不能是“display:none”(在这种情况下,只有没有内部宽度的总宽度的填充)