我正在开发一个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或任何其他想法。感谢。
答案 0 :(得分:0)
无法获得百分比高度(google的高度百分比原因)。获取以像素为单位的absole高度,在Javascript中计算(不要忘记将其舍入)并将结果加载到您想要的元素(添加'px'字符串以确保)。这总是对我有用。
编辑:(发表评论后)
也许,我可以看到错误。您正在分配未定义的功能。首先,你必须定义功能,然后使用它
答案 1 :(得分:0)
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>