2011-07-27 55 views
0

從包含該樹形結構的HTML頁面和內容區域iframe內重新加載樹形導航iframe的最佳方式是什麼?從容器頁面和內容iframe重新加載樹形導航iframe

樹形導航iframe在像這樣的favorites.php(HTML頁面)中定義。

<iframe id="tnav" src="loadtreeb.php" style="border: 0px; width: 200px; height: 86%; overflow: auto;"> 
</iframe> 

如果節點添加到樹中,有在HTML頁面的按鈕調用savepages.php保存更新。該php文件被加載到內容iframe中。

<FORM name="pagesform" action="savepages.php" method="post"> 
    <P style="font:12px Arial, Verdana;" > 
    Add one line for each page in this format: Page Name, Folder Name, http://thepage.com <br/> 
    <textarea name="newpages" rows="23" style="width:780px;"></textarea> <br/> 
    <input type="submit" value="Save Page(s)" style="margin-top: 5px;"/> 
    </P> 
</FORM> 

我重新加載從這個savepages.php(內容iframe)的樹。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#tnav', window.parent.document).attr('src','loadtreeb.php'); 
    }); 
</script> 

還有其他操作從HTML頁面執行,也從JavaScript重新加載iframe。這裏有一種情況,一個刪除項目按鈕,它調用頁面腳本中定義的javascript函數。

<div id="update"> 
     <img src="treeico/delete.gif" style="cursor: pointer;" title="Delete" onclick="deleteitem();" /> 
    </div> 

function deleteitem() 
{ 
    //perform delete action 

    //reload tree 
    $('#tnav').attr('src','loadtreeb.php');  
} 

無論是來電.attr( 'src' 中, 'loadtreeb.php')重新加載樹導航,不

$('#tnav', window.parent.document).attr('src','loadtreeb.php')

,而不是

$('#tnav').attr('src','loadtreeb.php')

轉到#tnav必須有問題。可能是什麼問題呢?我認爲添加位置window.parent.document以定位#tnav是從內容區iframe中重新加載樹導航的正確方法。而忽略該位置是從HTML頁面腳本中重新加載的正確方式。

  1. 是否還有其他問題我沒有想過?
  2. 是否緩存問題?
  3. 如何防止樹導航iframe的緩存?

謝謝。

回答