Перезагрузка дерева навигации iframe со страницы контейнера и из содержимого iframe - PullRequest
0 голосов
/ 27 июля 2011

Каков наилучший способ перезагрузить древовидную структуру навигации 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-файл загружается в контентный фрейм.

<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 (контентный фрейм) следующим образом.

<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 Ответ

0 голосов
/ 28 июля 2011

Кэширование казалось проблемой.Добавление этого в заголовок страницы 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...