0

从包含该树的 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 回答 1

0

缓存似乎是问题所在。将此添加到 iframe 页面标题解决了问题。

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

谷歌搜索并在这里找到答案http://www.webdeveloper.com/forum/showthread.php?t=64667

于 2011-07-28T14:44:59.543 回答