Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Кроссбраузерный импорт из тхт-файла (https://javascript.ru/forum/css-html-internet-explorer/20943-krossbrauzernyjj-import-iz-tkht-fajjla.html)

Lov3Catch 23.08.2011 14:51

Кроссбраузерный импорт из тхт-файла
 
Доброго времени суток.
Столкнулся с проблемой импорта содержимого тхт-файла в div.
В ФФ все работает нормально, а в IE и Opera-не хочет.

Создание getXmlHttpRequest - кроссбраузерное.

Для наглядности привожу код:

//Кроссбраузерное создание getXmlHttpRequest
function getXmlHttpRequest()
{
	if (window.XMLHttpRequest) 
	{
		try 
		{
			return new XMLHttpRequest();
		} 
		catch (e){}
	} 
	else if (window.ActiveXObject) 
	{
		try 
		{
			return new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e){}
		try 
		{
			return new ActiveXObject('Microsoft.XMLHTTP');
		} 
		catch (e){}
	}
	return null;
}
	// Асинхронный запрос_1
		function showAsyncRequest()
		{
			// Запрос
			req1 = getXmlHttpRequest();
			req1.onreadystatechange = showAsyncRequestComplete;
			req1.open("GET", "txt/new_1.txt", true);
			req1.send(null);
		}
		
		// Завершение асинхронного запроса_1
		function showAsyncRequestComplete()
		{
			// только при состоянии "complete"
			if (req1.readyState == 4) 
			{
				var result_1 = document.getElementById("layer_1st_1"); //Сюда выводим результат
				result_1.firstChild.nodeValue = req1.responseText;
			}
		}

Что б было удобней тут же html и css
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>___</title>
<link rel="stylesheet" type="text/css" href="style_.css"/>
</head>
<body>

<div id="layer_1st_1"> </div>

<script type="text/javascript" src="ajx_import_1.js"></script>
<script type="text/javascript" src="done_.js"></script>

</body>
</html>

Код:

#layer_1st_1{
        height:100px;
    width:150px;
    background:black;
    color:green;
    display:block;
    float:left;
}

Кто подскажет в чем проблемка? Зарание спасибо :)

Magneto 23.08.2011 14:58

Потому что XMLHttpRequest работает только с протоколом HTTP, в FireFox сделали исключение и поэтому там запросы к URL вида file:///C:/Users/Magneto/Desktop работают. Поэтому чтоб работало везде нужно установить себе на компьютер веб-сервер, например nginx. Или если есть хостинг, забросить туда.

B@rmaley.e><e 23.08.2011 14:58

Цитата:

Сообщение от Lov3Catch
result_1.firstChild.nodeValue

А это кроссбраузерно? И Вы уверены, что во всех браузерах firstChild — это элемент (nodeType == 1)?

Lov3Catch 23.08.2011 15:03

Тобишь, если к файлу будет обращение типа:
http://mysite.ru/file.txt
Будет работать?

2:B@rmaley.e><e-не уверен, т.к. не Я автор данного скрипта и знания JS очень посредственные, пока что...
Вот и пришел к Вам на форум, что б подучиться и точки над Ы поставить.


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