0

以下のコンテンツと iframe 設定を持つページ、インデックスがあります。

インデックスページ:

<html>
<body>

<iframe src=".." id="leftFrame"></frame>
<iframe src="mainFrame.html" id="mainFrame"></frame>

</body>

</html>

mainFrame.html:

<div class="hidden" id="hiddenStuff">
....
</div>

メインフレームで、非表示の div にいくつかのコンテンツをロードしています。

そのコンテンツを mainFrame.html から取得し、javascript を介して mainFrame からトリガーされるインデックスに表示することは可能ですか?

つまり、mainFrame が読み込まれると、javascript を介して親 iframe を呼び出し、#hiddenStuff のコンテンツを取得してから、インデックス ページに表示します。

4

1 に答える 1

1

はい、親フレームとメインフレームが両方とも同じドメインにある場合は可能です。

親/インデックス:

<html>
<body>

<script type="text/javascript">

function updateContent(content)
{
    $('#content').html(content);
}

document.domain = "yourdomain.com";

</script>

<iframe src=".." id="leftFrame"></frame>
<iframe src="mainFrame.html" id="mainFrame"></frame>

<div id="content"> </div>

</body>

</html>

メインフレーム/子:

<script type="text/javascript">

document.domain = "yourdomain.com";

$(document).ready(function(){

    // on page load, trigger the update
    var content = $('#hiddenStuff').html();

    try
    {
        parent.updateContent(content);
    }
    catch(e)
    {
        // couldn't call the parent, handle the exception
    }

});

</script>

<div class="hidden" id="hiddenStuff">
....
</div>

未加工の HTML を要素に処理するときは、コンテンツのいずれかがユーザー入力からのものである場合、XSS の可能性を考慮する必要があることに注意してください。

于 2012-06-11T16:22:02.890 に答える