2014-01-08 1 views
0

У меня есть страница с фреймами. В одном кадре действие пользователя может вызвать отправку запроса ajax. Ответ содержит полную новую страницу, и я хочу заменить существующую страницу ответом. Моя проблема заключается в том, что когда я пытаюсь сделать это, новое содержимое отображается в кадре, откуда возник запрос. Как заменить всю страницу, а не только рамку?Замена всей страницы с ответом ajax от кадра

Я пробовал:

document.open(); 
document.write(response); 
document.close(); 

и:

var newDoc = document.open("text/html", "replace"); 
newDoc.write(response); 
newDoc.close(); 

Но я получил те же самые нежелательные результаты обоих.

ответ

2

я не могу проверить прямо сейчас, но при условии:

  • Ваш вызов Ajax происходит внутри фрейма один уровень ниже основного документа
  • Ваш ответ содержит только содержимое тела

Вы можете попробовать этот код:

document.parent.body.innerHTML = response; 
+0

Я получаю: document.parent undefined. Моя страница выглядит следующим образом: Главных <фреймы frameborder = 1 граница = 1 строки = "140, *"> <кадра SRC = "mainheader.php> <фреймов frameborder = 1 граница = 1 смещ_по_столбцы = '75%, 25% '> <кадр SRC = имя "selection.php" = "отбор"> Запрос исходит от selec . –

+0

Это сообщение может дать вам некоторое представление, Ларри: http://stackoverflow.com/questions/4733542/reading-parent-document-from-iframe-and-changing-parent – OnoSendai

+0

Я пробовал и top.document.body. innerHTML = ответ; и parent.document.body.innerHTML = response; В обоих случаях весь документ был заменен, но был отображен только верхний кадр. Если я посмотрю на источник страницы, все есть, и если я просто нажму на возврат в адресной строке, все кадры будут визуализированы. Что помешало бы ему отображать все кадры при выполнении задания? –

Смежные вопросы