Перезагрузка дерева навигации 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-страницы.

  1. Есть ли другие вопросы, о которых я не задумывался?
  2. Кэширование - это проблема?
  3. Как предотвратить кэширование для дерева навигации 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

Другие вопросы по тегам