Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.05.2011, 15:08
Интересующийся
Отправить личное сообщение для Parez Посмотреть профиль Найти все сообщения от Parez
 
Регистрация: 01.05.2011
Сообщений: 10

Как загрузить xml из вышележащей директории без обращения к серверу?
Нужно загрузить данные из внешнего xml, расположенного в той же папке (или выше), откуда запущено JS приложение. Насколько я понял, XMLHttpRequest позволяет загружать файлы только через обращение к серверу. Можно ли как-нибудь загрузить данные из файла без помощи сервера?
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2011, 17:36
Интересующийся
Отправить личное сообщение для Lucidmind Посмотреть профиль Найти все сообщения от Lucidmind
 
Регистрация: 29.04.2011
Сообщений: 13

Немного непонятно... xml находится на клиентской машине или на web-сервере?
Ответить с цитированием
  #3 (permalink)  
Старый 05.05.2011, 17:43
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Вроде на клиентской машин. По моему никак нельзя.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2011, 18:24
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Можно.

В случае если это обычная страница. Файл нужно открыть во фрейме и после получить необходимые данные с этого фрейма.

Но если это именно приложение, виджет, гаджет или hta-апликация, то там есть встроенные методы для работы с локальными файлами.
Ответить с цитированием
  #5 (permalink)  
Старый 05.05.2011, 18:36
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Сообщение от Magneto
Файл нужно открыть во фрейме и после получить необходимые данные с этого фрейма
Я как то пробовал так сделать. Он выдал ту же ошибку что и получается когда получаешь данные с фрейма чужой страницы. Он тоже думает что будто разные домены.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #6 (permalink)  
Старый 05.05.2011, 19:20
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Parez
Нужно загрузить данные из внешнего xml
примерно (еще есть нюансы с оперой) так:

function loadXML(import_file) {
	if(typeof ActiveXObject != 'undefined') {
		var version = ['Microsoft.XML', 
						'MSXML2.DOMDocument',
						'MSXML2.DOMDocument.3.0',
						'MSXML2.DOMDocument.4.0',
						'MSXML2.DOMDocument.5.0',
						'MSXML2.DOMDocument.6.0'
						], 
			i = version.length, XMLObject;
		while(i--) {
			XMLObject = new ActiveXObject(version[i]);
		}
		
		XMLObject.onreadystatechange = function () {
			if(XMLObject.readyState == 4) {
				/* ... */
			}
			XMLObject.load(import_file);
		}
	}
	else if(document.implementation && document.implementation.createDocument) {
		var XMLObject = document.implementation.createDocument('','',null);
			XMLObject.load(import_file);
			XMLObject.onload = function() {
				/* ... */
			};
	}
	else {
		alert('Your browser doesn\'t support this object');
		return false;
	}
}

Последний раз редактировалось monolithed, 05.05.2011 в 22:04.
Ответить с цитированием
  #7 (permalink)  
Старый 05.05.2011, 21:06
Интересующийся
Отправить личное сообщение для Parez Посмотреть профиль Найти все сообщения от Parez
 
Регистрация: 01.05.2011
Сообщений: 10

monolithed, то, что вы написали не требует обращения к серверу?

И потом я слышал, что ActiveXObject работает только в IE. А для остальных используется XMLHttpRequest.

Последний раз редактировалось Parez, 05.05.2011 в 21:18.
Ответить с цитированием
  #8 (permalink)  
Старый 05.05.2011, 21:35
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Parez
то, что вы написали не требует обращения к серверу?
я не понимаю сути вопроса, по вашему подгружаемый файл должен материализоваться из воздуха?
в вашем случае, нужно заместо import_file указать путь к файлу и вызвать функцию (ну и допилить код в плане реализации и парсинга документа)
Сообщение от Parez
И потом я слышал, что ActiveXObject работает только в IE. А для остальных используется XMLHttpRequest.
прочтите внимательно код, а лучше документацию по работе с этими объектами и примеры использования

Последний раз редактировалось monolithed, 05.05.2011 в 22:08.
Ответить с цитированием
  #9 (permalink)  
Старый 06.05.2011, 11:15
Интересующийся
Отправить личное сообщение для Parez Посмотреть профиль Найти все сообщения от Parez
 
Регистрация: 01.05.2011
Сообщений: 10

Сообщение от monolithed
я не понимаю сути вопроса, по вашему подгружаемый файл должен материализоваться из воздуха?
Я, если честно, не совсем понимаю устройства JS. 2 года программировал на AS3 и таких проблем не возникало. Flash'у наплевать как ты его запускаешь: со своего же компьютера или с сервера - он всегда может загружать в себя данные, находящиеся в той же директории или выше. JS тоже клиентский язык, так в чём же проблема?

Последний раз редактировалось Parez, 06.05.2011 в 11:31.
Ответить с цитированием
  #10 (permalink)  
Старый 06.05.2011, 13:26
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Parez
JS тоже клиентский язык, так в чём же проблема?
нет никаких проблем, JS тоже:
Сообщение от Parez
всегда может загружать в себя данные, находящиеся в той же директории или выше.
точнее работать с данными.
Что вы делаете может расскажите?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Не получается загрузить xml из php Alekson jQuery 2 08.07.2009 09:33
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17