Замените HTML-страницу содержимым, полученным через AJAX

У меня есть HTML-страница с типичной структурой:

<html>
  <head>
   <script src="..." ></script>
   <style>...</style>
  </head>
  <body>
   content
  </body>
  <script>
    var success_callback = function(data) {
      // REPLACE PAGE CONTENT & STRUCTURE WITH "data"
    }
    ajax(url, params, success_callback);
  </script>
</html>

Как вы думаете, это возможно? Я уже пытался дать html-тегу идентификатор и $(id).replace(data);без успеха.

Не спрашивайте меня, почему, но это то, что мне нужно (я работаю со специальным сайтом «mashup builder» ... это долгая история).

EDIT : Я забыл сказать, что скрипты в полученном контенте должны исполняться , даже внешние скрипты, включенные с использованием <script src="...">.

javascript,html,ajax,dom,

62

Ответов: 7


26 принят

попробуйте это с помощью jQuery :

$('body').load( url,[data],[callback] );

Подробнее на docs.jquery.com / Ajax / load


120 ов

Самый простой способ - установить новый HTML-контент, используя:

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

11 ов

Вот как это сделать в Prototype :$(id).update(data)

И jQuery :$('#id').replaceWith(data)

Но document.getElementById(id).innerHTML=dataдолжен работать тоже.

EDIT: Prototype и jQuery автоматически оценивают сценарии для вас.


Вы можете попробовать сделать

document.getElementById(id).innerHTML = ajax_response

4

Я предполагаю, что вы используете jQuery или что-то подобное. Если вы используете jQuery, тогда должно работать следующее:

<html>
<head>
   <script src="jquery.js" type="text/javascript"></script>
</head>
<body>
   content
</body>
<script type="text/javascript">
   $("body").load(url);
</script>
</html>
JavaScript, HTML, AJAX, дом,
Похожие вопросы