Могу ли я запустить полную перезагрузку веб-страницы с содержимым из строки JavaScript? - PullRequest
0 голосов
/ 24 октября 2008

Это один из тех вопросов ajax об "альтернативном потоке". Обычно я ожидаю, что мой запрос ajax вернет часть страницы. Но иногда он может вернуть полную страницу с тегами html, head и body.

Когда я возвращаюсь из своего ajax-запроса, я могу определить, является ли это полной страницей, но можно ли вызвать полную перезагрузку страницы (с полным циклом событий) на основе содержимого строки, которое у меня есть?

(И да, я пытался заменить элемент body, но это не дает мне событий и не позволяет мне изменять содержимое в блоке head)

Все ссылки на рамки в порядке

Ответы [ 4 ]

2 голосов
/ 24 октября 2008

Вы можете решить, что делать с вашим AJAX-запросом , основываясь на его HTTP-коде состояния .

Если вы получаете 301 («перемещен навсегда»), вы можете выполнить перенаправление, используя window.location:

new Ajax.Request(url, {
  method: 'get',
  // status 200: yadaa
  onSuccess: function(transport) {
    // doSomething
  },
  // status 301: moved permanently
  on301: function(transport){ 
    window.location = transport.responseText;
  }
});
2 голосов
/ 24 октября 2008

Я не думаю, что это можно сделать напрямую.

Вам лучше сохранить где-нибудь HTML-код и отправить обратно URL-адрес, где его можно получить, а затем использовать location.href = ...;

0 голосов
/ 20 ноября 2008

window.location = "same-url-as-im-at.aspx";

...

Чтобы сделать это непосредственно с документом HTML, я бы отчаянно попытался бы избежать, если бы я был вами по причинам, которые вы просмотрели в своем первоначальном вопросе ...

0 голосов
/ 24 октября 2008

По крайней мере, в Firefox вы можете использовать свойство window.location . Объект location содержит информацию об URL документа и предоставляет методы для изменения этого URL. Вы также можете назначить это свойство для загрузки другого URL.

Пример из документа:

Replace the current document with the one at the given URL:

function goMoz() { 
   window.location = "http://www.mozilla.org";
} 

// in html: <button onclick="goMoz();">Mozilla</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...