从容器页面和内容iframe重新加载树导航iframe

时间:2011-07-27 19:50:11

标签: jquery html caching iframe window.parent

从包含该树的HTML网页和内容区域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的缓存?
  4. 感谢。

1 个答案:

答案 0 :(得分:0)

缓存似乎是个问题。将其添加到iframe页面标题可以解决问题。

<meta http-Equiv="Cache-Control" Content="no-cache">
<meta http-Equiv="Pragma" Content="no-cache">
<meta http-Equiv="Expires" Content="0">

用Google搜索并在此处找到答案http://www.webdeveloper.com/forum/showthread.php?t=64667