Javascript.RU

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

не работает метод load(); в DOM
Всем привет, захотел с помощью DOM взять данные из XML и передать их на HTML страницу, данный метод сработал в Мозиле и IE, и не сработал в Хроме и Опере.

XML файл (1.xml):

<?xml version="1.0" encoding="utf-8"?>
<bulletinboard>
	<article>
		<title>FFFFFF</title>
		<detail>DDDDD</detail>
		<date>IIIIII</date>
	</article>
</bulletinboard>


HTML страница c DOM (2.html):

<html>
	<head>
		<meta charset="utf-8"/>
	</head>
	<body>
	<script type="text/javascript"> 
		function loadXMLDoc(dname) 
		{
			try
  			{
  			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");	
			}
			catch(e)	
			{
  				try 
    				{
xmlDoc=document.implementation.createDocument("","",null);
    				}
  				catch(e) {alert(e.message)}
  			}
			try 
  			{xmlDoc
 				xmlDoc.async=false;
  				xmlDoc.load(dname);
  				return(xmlDoc);
  			}
			catch(e) {alert(e.message)}
			return(null);
		}
		xmlDoc=loadXMLDoc("./1.xml");
		var x=xmlDoc.getElementsByTagName("title");
		var y=xmlDoc.getElementsByTagName("detail");
		var z=xmlDoc.getElementsByTagName("date");

		for (i=0;i<x.length;i++)
  		{ 
 			document.write(x[i].childNodes[0].nodeValue); 
  			document.write(y[i].childNodes[0].nodeValue);
  			document.write(z[i].childNodes[0].nodeValue);
  		}
	</script>
	</body>
</html>


Надеюсь что всё правильно оформил для темы.

Подскажите пожалуйста, как запустить это в браузерах Хром и Опера

Последний раз редактировалось Octane, 23.03.2014 в 20:47. Причина: javascript.ru/formatting
Ответить с цитированием
  #2 (permalink)  
Старый 23.03.2014, 21:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,767

Антон C,
http://learn.javascript.ru/ajax-xmlh...и-responsexml

http://yapro.ru/web-master/javascrip...xml-fayla.html
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2014, 21:25
Новичок на форуме
Отправить личное сообщение для Антон C Посмотреть профиль Найти все сообщения от Антон C
 
Регистрация: 23.03.2014
Сообщений: 7

Да, спасибо за ссылки данный метод мне известен, но он работает только с localhost, я же хотел обойтись без него.

Последний раз редактировалось Антон C, 23.03.2014 в 21:32.
Ответить с цитированием
  #4 (permalink)  
Старый 23.03.2014, 21:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,767

Сообщение от Антон C
Да, спасибо за ссылки данный метод мне известен, но он работает только с localhost, я же хотел обойтись без него.
непонял что вы написали ...

то есть такое http://learn.javascript.ru/play/SjVTTb вам неподходит?
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2014, 23:13
Новичок на форуме
Отправить личное сообщение для Антон C Посмотреть профиль Найти все сообщения от Антон C
 
Регистрация: 23.03.2014
Сообщений: 7

Метод, что вы предлагаете мне не подходит, он подразумевает использование локального сервера, я бы хотел такой метод где не надо создавать сервер, а можно просто запустить страницы с жесткого диска
Ответить с цитированием
  #6 (permalink)  
Старый 23.03.2014, 23:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,767

Антон C,
а JSON?
Ответить с цитированием
  #7 (permalink)  
Старый 24.03.2014, 00:01
Новичок на форуме
Отправить личное сообщение для Антон C Посмотреть профиль Найти все сообщения от Антон C
 
Регистрация: 23.03.2014
Сообщений: 7

Тоже нет к сожалению, он тоже использует метод responseText, а он ждет ответа от браузера, и если вызвать не через локальный сервер браузер ставит защиту от чтения данных ((((, все браузеры кроме Мозилы.
Мне советовали сделать через load вместо responseText, но load выдаёт непонятную ошибку, которую я не знаю как исправить
Ответить с цитированием
  #8 (permalink)  
Старый 24.03.2014, 00:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,767

Антон C, а так?
<!DOCTYPE HTML>

<html>

<head>

  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #example-1{
    text-align: center;
    cursor: pointer;
  }

  </style>
  <link rel="stylesheet" type="text/css" href="style.css"/>
</head>

<body>



<div class="example cursor" id="example-1">Click to update</div>
<script>
function loadElement(url, callback) {
    var request = new XMLHttpRequest();
    try{
    request.open('GET', url);
    request.send(null);
    request.onreadystatechange = function() {
        if (this.readyState == 4)
            callback(this.responseXML);
    };
  } catch(e) {
    request = new ActiveXObject("Microsoft.XMLDOM");
    request.load(url);
    callback(request)
  }


}
var div =  document.getElementById('example-1');
div.onclick = function ()
{
  loadElement('./1.xml', function(xmlDoc) {
  var x=xmlDoc.getElementsByTagName("title");
		var y=xmlDoc.getElementsByTagName("detail");
		var z=xmlDoc.getElementsByTagName("date");
var html = ''
		for (i=0;i<x.length;i++)
  		{
 			html +=x[i].childNodes[0].nodeValue;
  			html +=y[i].childNodes[0].nodeValue;
  			html +=z[i].childNodes[0].nodeValue;
  		}
  div.innerHTML =  html
})
}
;
</script>

</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 24.03.2014, 00:14
Новичок на форуме
Отправить личное сообщение для Антон C Посмотреть профиль Найти все сообщения от Антон C
 
Регистрация: 23.03.2014
Сообщений: 7

responseXML Опять же ,не уверен точно ли этот метод мешает браузеру но Опера и Хром без локального сервера не открывают данные, хотя в мозиле все работает , но в мозиле работали и все предыдущие методы

response вроде требует синхронного ответ браузера, поэтому без сервера он не работает
Ответить с цитированием
  #10 (permalink)  
Старый 24.03.2014, 00:15
Новичок на форуме
Отправить личное сообщение для Антон C Посмотреть профиль Найти все сообщения от Антон C
 
Регистрация: 23.03.2014
Сообщений: 7

похоже без локального сервера не обойтись(((
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает при заходе на данную страницу, но работает при рефреше страницы foker jQuery 0 26.11.2012 10:27
Метод JQuery $.post работает через раз Dimaz AJAX и COMET 3 22.11.2012 15:52
Не работает addClass(), removeClass для клонированных элементов DOM. Kotakota jQuery 0 23.10.2012 11:46
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 10:41
В Firefox 3.5.5 не работает метод POST. Какие методы лечения? javascript_pupil AJAX и COMET 1 10.12.2009 19:34