我正在开发一个web应用程序,我们正在用Java和jsf开发它。我制作了一个用于选择数据的组件,该组件在其他组件(如向导、模态面板等)中使用。问题是,我需要将组件的高度设置为其内部向导高度的百分比。我尝试过使用javascript,但问题是当我在组件中使用window.onload命令时,它不起作用。现在我只是想提醒()父组件的高度,但它不起作用。这是我的代码:
<script type="text/javascript">
<![CDATA[
window.onload = setHeight;
function setHeight()
{
var element = document.getElementById("#{rich:clientId('mainWizardDiv')}");
var h = window.getComputedStyle(element, null).getPropertyValue("height");
alert(h);
}
]]>
</script>
你有没有其他的建议可以做到这一点,我可以使用onload,或者任何其他的想法。谢谢
无法获得百分比高度(谷歌搜索高度百分比是有原因的)。获取以像素为单位的绝对高度,在Javascript中计算它(不要忘记四舍五入),并将结果加载到您想要的元素中(添加"px"字符串只是为了确定)。这一直对我有效。
编辑:(发表评论后)
也许,我能看出错误。您正在分配未定义的函数。首先,您必须定义函数,然后使用它
CDATA使用不当:应注释CDATA以避免js语法错误:
<html>
<head>
<script type="text/javascript">
//<![CDATA[
window.addEventListener('load', setHeight);
function setHeight()
{
var element = document.getElementById("div1");
var h = window.getComputedStyle(element, null).getPropertyValue("height");
alert(h);
}
//]]>
</script>
</head>
<body>
<div style='height:200px; width:200px;' id='div1'>
</div>
</body>
</html>