0

URL(Webページ)のサイズに基づいてSmartPortalのデフォルトサイズを変更できるかどうか知っている人はいますか?デフォルトは画面幅の 1/3、高さ 250px です。画面全体の幅と他の高さを取るように変更することは可能ですか?

そのための SmartPortal プラグインを作成するか、Web ページの DOM を操作する必要がありますか?

どんなアドバイスも役に立ちます:)

4

1 に答える 1

0

私はそれを理解しました (ShankarSangoli に感謝します)。jQuery を使用して iframe の高さを変更しました。ダッシュボード全体は単なる html テーブルなので、いくつかのセレクターを使用して iframe の高さを変更できました。

これは私のコードです:

    <script type="text/javascript">
        $(document).ready(function () {
            //SmartPortal name
            var SPname = 'Name of SmartPortal';
            //function usage
            resizeSP(SPname, 400);
        });

        function resizeSP(SP, size) {
            $("table.TitleText td.TitleText:contains(" + SP + ")", parent.document).closest('#title-bar').parent().next().find('#contentNode').children(":first").css("height", size);
        }
    </script>

しかし、いくつかの制限があります!!! SmartPortal で使用される html ページは Pivotal と同じドメインにある必要があるため (JavaScript セキュリティの制限)、ドキュメントをローカル ドライブに保存し、SP プロパティで相対 URL を使用しました。

ドメイン外の Web ページを使用する場合は、ターゲット URL を含む iframe を含む html ドキュメントを作成し、それを Pivotal にロードします。このような:

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            //SmartPortal name
            var SPname = 'SP name;
            //usage
            resizeSP(SPname, 400);
        });

        function resizeSP(SP, size) {
            $("table.TitleText td.TitleText:contains(" + SP + ")", parent.document).closest('#title-bar').parent().next().find('#contentNode').children(":first").css("height", size);
        }
    </script>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
            overflow: auto;
            height: 100%;
        }
        iframe {
            display:block;
            width:100%;
            border:none;
        }
    </style>
</head>
<body>
    <iframe src="http://www.yoursite.com"></iframe>
</body>

誰にとっても役立つことを願っています:)

于 2012-02-17T09:08:54.237 に答える