Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача xml файла в js не через HTTP. (https://javascript.ru/forum/misc/18294-peredacha-xml-fajjla-v-js-ne-cherez-http.html)

prowoke 24.06.2011 19:58

Передача xml файла в js не через HTTP.
 
Здравствуйте. Вот пытаюсь научится работать с xml из javascript. Но не могу понять кое чего. Вот есть 1 способ получения xml в обьект:
getXML = function(url, callback) {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
	if (request.readyState == 4 && request.status == 200)
		callback(request.responseXML);
	}
	request.open("GET",url);
	request.send(null);
};


Туда мы передаём url, можно и просто "filename.xml", впринципе тоже url. Но сам факт, в том, что передаём через http. А можно ли как нибудь передать файл с js скрипт не через http, а просто как файл? Ну т.е. альтернативный метод моему.

walik 24.06.2011 20:14

Нет, JS не умеет работать с файлами (не учитывая File API для новых браузеров)

prowoke 24.06.2011 23:07

Следовательно из стандартных только через HTTP?

walik 24.06.2011 23:13

Насколько мне известно - да.

Kolyaj 25.06.2011 21:29

Если файл лежит на HTTP-сервере, а браузер -- это HTTP клиент, то как же ещё передавать файл, кроме как по HTTP?

prowoke 29.06.2011 06:52

Цитата:

Сообщение от walik (Сообщение 110372)
Насколько мне известно - да.

Вот в книжке фленагана нашёл такой код. Он пишет, что это альтернативный способ загрузки XML документа. Вот код:
var XML = {};

XML.newDocument = function(rootTagName, namespaceURL) {
	if (!rootTagName) rootTagName = "";
	if (!namespaceURL) namespaceURL = "";
	if (document.implementation && document.implementation.createDocument) {
		return document.implementation.createDocument(namespaceURL, rootTagName, null)
	}
}
XML.load = function(url) {
	var xmldoc = XML.newDocument();
	xmldoc.async = false;
	xmldoc.load(url);
	return xmldoc;
};


У меня он не работает, говорит что метода load() нету. Что это за способ, расскажите немного пожалуйста. Гугл молчит. Про создание xml документа с помощью document.implementation.createDocument нашёл (как я понял это создаётся пустой XML документ внутри скрипта), а вот про использования метода load нету.

DooMer 29.06.2011 12:28

Цитата:

Сообщение от prowoke (Сообщение 111032)
У меня он не работает, говорит что метода load() нету.

XML.load = function(url) {

а это что такое ?

prowoke 30.06.2011 01:47

Не понял вопроса. Ну это обьявление метода, вроде.

Graphis 30.06.2011 02:19

Вот интересная новость, как раз по вашей теме
http://www.opennet.ru/opennews/art.shtml?num=31012
Способ заключается в использовании механизма WebSockets.

prowoke 30.06.2011 02:36

Классно, оказывается метод load() у вот этого обьекта или что это "document.implementation.createElement()" не работает в браузере Google Chrome. О как.


Часовой пояс GMT +3, время: 12:59.