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

CDATAの不適切な使用:js構文エラーを回避するためにCDATAにコメントを付ける必要があります。

<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 に答える
0

高さのパーセンテージを取得できません (理由により、高さのパーセンテージを Google で検索してください)。絶対高さをピクセル単位で取得し、Javascript でカウントし (四捨五入することを忘れないでください)、必要な要素に結果をロードします (念のために「px」文字列を追加します)。それはいつも私のために働いていました。

編集:(コメントを投稿した後)

たぶん、私は間違いを見ることができます。定義されていない関数を割り当てています。まず、関数を定義してから使用する必要があります

于 2013-02-13T09:23:41.767 に答える