Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2011, 19:31
Новичок на форуме
Отправить личное сообщение для Leopardoff Посмотреть профиль Найти все сообщения от Leopardoff
 
Регистрация: 13.05.2011
Сообщений: 7

Загрузка html и DOM-работа с ним
Только начал разбираться с Ajax. Возник вопрос: как загружать статичные HTML-файлы, чтобы с ними можно было работать с использованием DOM-методов. Или это возможно только для xml-файлов? Хотелось бы обойтись без jQuery load(). Вот примерный код того, что я хочу получить:
function createRequest() {
  if (typeof XMLHttpRequest === 'undefined') {
    XMLHttpRequest = function() {
      try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
        catch(e) {}
      try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
        catch(e) {}
      try { return new ActiveXObject("Msxml2.XMLHTTP"); }
        catch(e) {}
      try { return new ActiveXObject("Microsoft.XMLHTTP"); }
        catch(e) {}
      throw new Error("This browser does not support XMLHttpRequest.");
    };
  }
  return new XMLHttpRequest();
}
var request = new createRequest(); //Создаем новый объект XMLHttpRequest
request.open('GET','page.html');//Открываем соединение
request.onreadystatechange = function(){//Указываем обработчик события onreadystatechange
	if(request.readyState == 4 && request.status == 200) 
			alert(request.responseXML.getElementsByTagName('head')[0].getElementsByTagName('title')[0].innerHTML);
}
request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");//Избавляемся от кеширования в IE
request.send(null);//Посылаем запрос
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2011, 19:49
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Ну логически наверное правильно, вы должны получать данные в формате xml а не html))
Сейчас у вас responseXML = null как я понимаю, и это правильно так как вы не передали валидный XML.
Как вариант, можете полученный html (responseText) закинуть в какой то скрытый контейнер на странице, и уже обращаться к элементам.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай

Последний раз редактировалось walik, 13.05.2011 в 19:51.
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2011, 20:07
Новичок на форуме
Отправить личное сообщение для Leopardoff Посмотреть профиль Найти все сообщения от Leopardoff
 
Регистрация: 13.05.2011
Сообщений: 7

Хорошо, а как это делается в JQuery?
Ответить с цитированием
  #4 (permalink)  
Старый 13.05.2011, 20:22
Новичок на форуме
Отправить личное сообщение для Leopardoff Посмотреть профиль Найти все сообщения от Leopardoff
 
Регистрация: 13.05.2011
Сообщений: 7

Так сделал. Пишет undifined, хотя тэг этот есть на html-странице
request.onreadystatechange = function(){//Указываем обработчик события onreadystatechange
	if(request.readyState == 4) {
		var container = document.createElement('div');
		container.innerHTML = request.responseText;
		alert(container.getElementsByTagName('html')[0]);
	}
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка внешнего html файл на страницу GRean (X)HTML/CSS 3 26.04.2010 14:16
DOM javascript загрузка удаленной страницы galiaf45 AJAX и COMET 1 28.03.2010 19:33
Удаленная работа на сайте через html страницу Sanches Общие вопросы Javascript 19 11.08.2009 13:21
Работа с DOM на стороне сервера AlexAndreev Серверные языки и технологии 7 27.05.2009 21:39
Добавление элемента и работа с ним nvbn Events/DOM/Window 13 07.07.2008 19:07