Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.04.2008, 10:38
Новичок на форуме
Отправить личное сообщение для Ergall-M Посмотреть профиль Найти все сообщения от Ergall-M
 
Регистрация: 30.04.2008
Сообщений: 5

Ajax & Autorun
Привет всем! У меня тут возникла проблемка, надеюсь что Вы мне поможете, ибо я уже все перепробывал. Мне нужно создать "сайт" на диск...т.е. там пару статей в html и вставлять в каждую страницу стиль мне не охота. Вот я и подумал что ajax мне тут может помочь. Вобщем я написал скриптик...когда он на сервере (apache) и я обращаюсь к нету как к сайту (http://localhost/work/), то все шикарно, но стоит мне перетащить скрипт на диск (или просто запустить как файл) например: C:\work\index.html как скрипт выводит ошибку и при этом xmlhttp.statusText у меня пустой....что посоветуете???

вот кодик:
function LoadPage(src)
{
	var xmlhttp;
	var innerto = document.getElementById('WorkTable');
	var loadingwindows = document.getElementById('LoadAjaxTable');
	
	if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
	else if (window.ActiveXObject) xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	
	if (!xmlhttp) { ShowError('Ваш браузер не поддерживает технологии Ajax'); return; }
	if (!innerto) { ShowError('Не определено место для загрузки'); return; }
	if (!loadingwindows) { ShowError('Не определено вспомогательное окно'); return; }
	if (src == '') src = 'index.html';
	
	//отображаем окно загрузки
	loadingwindows.style.display = 'block';
	
	xmlhttp.open('POST','page/'+src,true);
	
	xmlhttp.onreadystatechange=function()
	{
	  if (xmlhttp.readyState != 4) return;
	
	  clearTimeout(timeout) // очистить таймаут при наступлении readyState 4
	
	  if (xmlhttp.status == 200) {
		  //все ок
		  innerto.innerHTML = xmlhttp.responseText;
	  } else {
		  ShowError(xmlhttp.statusText) // вызвать обработчик ошибки с текстом ответа
	  }
	}
	
	xmlhttp.send(null);
	
	// Таймаут 10 секунд
	var timeout = setTimeout( function(){ xmlhttp.abort(); ShowError('Слишком долгая задержка'); }, 10000);
	
	loadingwindows.style.display = 'none';
}

function ShowError(message)
{
	alert('Ошибка: '+message);
}
Ответить с цитированием
  #2 (permalink)  
Старый 30.04.2008, 10:40
Новичок на форуме
Отправить личное сообщение для Ergall-M Посмотреть профиль Найти все сообщения от Ergall-M
 
Регистрация: 30.04.2008
Сообщений: 5

вот index.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Отраслевое соглашение</title>
<script language="javascript" type="text/javascript" src="system/function.js"></script>
<link href="system/style.css" rel="stylesheet" type="text/css">
</head>
<body onLoad="LoadPage('index.html');">
<!-- таблица загрузки ajax -->
<table class="LoadAjaxTable" id="LoadAjaxTable">
<tr><td><h2><b>Загрузка...</b></h2></td></tr>
</table>
<!-- /таблица загрузки ajax -->
<br><br><br>
<!-- основная таблица сайта -->
<table class="MainSiteTable" align="center">
<tr><td>
	<!-- таблица логотипа -->
    <table class="LogotypeSiteTable">
    	<tr>
        	<td width="160"><img src="system/logo.png" height="106" width="152" alt="Логотип"></td>
        	<td align="right"><h3>Что-нибудь...</h3></td>
        </tr>
    </table><br>
    <!-- /таблица логотипа -->
</td></tr>
<tr><td>
	<!-- таблица рабочей части -->
    <table class="WorkSiteTable">
    	<tr>
        	<td valign="top" width="200px">
            	<!-- таблица главного меню -->
				<table class="MainMenuTable">
					<tr><td><div class="link" onClick="javascript:LoadPage('');">Главная страница</div></td></tr>
					<tr><td><hr></td></tr>
					<tr><td><div class="link" onClick="javascript:LoadPage('video.1.html');">Видео обращение</div></td></tr>
					<tr><td><hr></td></tr>
					<tr><td><div class="link" onClick="javascript:LoadPage('item.1.html');">Общие положения</div></td></tr>
				</table>
                <!-- /таблица главного меню -->
            </td>
            <td valign="top">
            	<!-- рабочее поле -->
				<table class="WordTable">
					<tr><td><div id="WorkTable"></div></td></tr>
				</table>
                <!-- /рабочее поле -->
            </td>
        </tr>
    </table>
    <!-- /таблица рабочей части -->
</td></tr>
</table>
<!-- /основная таблица сайта -->
</body>
</html>


а вот файл css

body { background-image:url(root.png); background-color:#CCCCCC; cursor:default; }

table.LoadAjaxTable { border-width:1px; border-style:solid; border-color:#999999; background-color:white; color:black; z-index:1; position:absolute; left:40%; top:50%; display:none;}

table.MainSiteTable, table.LogotypeSiteTable, table.WorkSiteTable { border-style:none; border-width:0px; }

table.MainSiteTable { width:800px; }

table.MainMenuTable, table.WordTable { border-width:1px; border-style:solid; border-color:#999999; background-color:white; color:black; }

table.LogotypeSiteTable, table.WorkSiteTable, table.MainMenuTable, table.WordTable { width:100%; }

div.link { color:blue; text-decoration:none; cursor:hand; }
div.link:hover { text-decoration:underline; }



в папке "page" лежат наши статьи....если что-то не понятно спрашивайте...
Ответить с цитированием
  #3 (permalink)  
Старый 04.05.2008, 13:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Обрадовать к сожалению нечем. политика безопасности боьшинства браузеров не позволяет использовать этот объект для запросов в файловую систему, либо на другой домен.
выход:либо использовать какой-нить другой транспорт, либо поставить на диск что-то по типу денвера
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2008, 10:38
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

юзай фреймы
Ответить с цитированием
  #5 (permalink)  
Старый 06.05.2008, 20:48
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Фреймы вроде точно так же подвержены политике безопасности.

А попробуйте вместо 'C:\work\index.html' написать '\work\index.html' - вдруг поможет, я, если честно, не сталкивался и не пробовал. %)

Если получится, напишите плиз ))
Ответить с цитированием
  #6 (permalink)  
Старый 07.05.2008, 07:44
Новичок на форуме
Отправить личное сообщение для Ergall-M Посмотреть профиль Найти все сообщения от Ergall-M
 
Регистрация: 30.04.2008
Сообщений: 5

Гык
Сообщение от Snipe Посмотреть сообщение
Фреймы вроде точно так же подвержены политике безопасности.

А попробуйте вместо 'C:\work\index.html' написать '\work\index.html' - вдруг поможет, я, если честно, не сталкивался и не пробовал. %)

Если получится, напишите плиз ))
ты приколист? =)
я автозагрузку делаю с диска, да и ни когда не использую ссылки с полным адресом типа "c:\work\index.html", а только такие: "work\index.html"

Gvozd, Спасибо за ответ, надеюсь они (программеры) сделают в будущем такую возможность, работать с файловой системой.
Ответить с цитированием
  #7 (permalink)  
Старый 07.05.2008, 08:00
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Ну, лично я надеюсь что наоборот не сделают, ибо это ОГРОМНЕЙШАЯ дыра в безопасности, и с этим наоборот на постой борются.
вам советую почитать эти статьи http://javascript.ru/ajax/transport
в особенности вторую и третью.ПОлагаю это то, что вам нада
Ответить с цитированием
  #8 (permalink)  
Старый 08.05.2008, 00:36
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

хм, поэкспериментировал. Iframe вроде нормально сработал с файловой системой, хотя с разными доменами не работал (точно помню).
Ответить с цитированием
  #9 (permalink)  
Старый 08.05.2008, 00:58
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

по моему для твоей цели и не нужны другие доиены))
Ответить с цитированием
  #10 (permalink)  
Старый 08.05.2008, 08:01
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Да нет, я к тому, что логично предположить, что раз ajax не работает на чужие домены и в файловой системе, то и iframe'ы не должны в обоих случаях.
Но в итоге имеем, что iframe не работает только с другими доменами, а с файловой системой работает.

Хотя, конечно, я мог и напортачить где-то.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
Просмотр передаваемых данных через AJAX Гость AJAX и COMET 3 04.08.2008 14:34
AJAX и БД SunYang AJAX и COMET 3 06.06.2008 22:44
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54