iframe和他们之间的沟通

时间:2012-06-11 15:24:39

标签: jquery html css

我有一个页面索引,其中包含以下内容和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的内容,然后在索引页面中显示它。

1 个答案:

答案 0 :(得分: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的可能性。