Перезагрузка дерева навигации iframe со страницы контейнера и из содержимого iframe
Каков наилучший способ перезагрузить дерево навигации iframe из HTML-страницы, содержащей это дерево, и из области содержимого iframe?
Древовидная структура навигации iframe определена в файле fav.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, которые также перезагружают iframe из javascript. Вот одна ситуация, кнопка удаления элемента, которая вызывает функцию 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?
Благодарю.
1 ответ
Казалось, проблема в кешировании. Добавление этого в заголовок страницы 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