2012-06-11 66 views
0

我有一個網頁,索引,具有如下內容和iframe設置: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獲取該內容並將其顯示在索引中,該索引是由mainFrame通過javascript觸發的?

即,一旦mainFrame加載,它將通過JavaScript調用父iframe來獲取#hiddenStuff的內容,然後將其顯示在索引頁中。

回答

1

是的,如果父母和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的可能性的內容來自用戶輸入。