从包含该树的 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 页面脚本中重新加载的正确方法。
- 还有其他我没有考虑过的问题吗?
- 缓存有问题吗?
- 如何防止树导航 iframe 的缓存?
谢谢。