0

我正在开发一个 Web 应用程序,我们正在用 Java 和 jsf 开发它。我制作了一个用于选择数据的组件,该组件在其他组件(如向导、模式面板等)中使用。问题是,我需要将组件的高度设置为其内部向导高度的百分比。我尝试使用 javascript,但我遇到的问题是当我将它放在我的组件中时 window.onload 命令不起作用。现在我只是想 alert() 父组件的高度,但它不起作用。这是我的代码:

<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 或任何其他想法来解决问题。谢谢。

4

2 回答 2

0

不可能得到百分比高度(谷歌搜索高度百分比的原因)。获取以像素为单位的绝对高度,在 Javascript 中对其进行计数(不要忘记将其四舍五入)并将结果加载到您想要的元素(添加 'px' 字符串以确保)。这一直对我有用。

编辑:(发表评论后)

也许,我能看出错误。您正在分配未定义的功能。首先,您必须定义功能,然后使用它

于 2013-02-13T09:23:41.767 回答
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>
于 2013-02-13T10:11:52.247 回答