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>

现在在 mainFrame 中,我正在一个隐藏的 div 中加载一些内容。

是否可以从 mainFrame.html 获取该内容并将其显示在索引中,这是通过 javascript 从 mainFrame 触发的

即,一旦 mainFrame 加载,它将通过 javascript 调用父 iframe 以获取 #hiddenStuff 的内容,然后将其显示在索引页面中。

4

1 回答 1

1

是的,如果 parent 和 mainFrame 都在同一个域上,这是可能的。

父/索引:

<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 回答