
30.04.2008, 10:38
|
Новичок на форуме
|
|
Регистрация: 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);
}
|
|

30.04.2008, 10:40
|
Новичок на форуме
|
|
Регистрация: 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" лежат наши статьи....если что-то не понятно спрашивайте...
|
|

04.05.2008, 13:24
|
 |
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Обрадовать к сожалению нечем. политика безопасности боьшинства браузеров не позволяет использовать этот объект для запросов в файловую систему, либо на другой домен.
выход:либо использовать какой-нить другой транспорт, либо поставить на диск что-то по типу денвера
|
|

05.05.2008, 10:38
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
юзай фреймы
|
|

06.05.2008, 20:48
|
 |
Профессор
|
|
Регистрация: 06.05.2008
Сообщений: 765
|
|
Фреймы вроде точно так же подвержены политике безопасности.
А попробуйте вместо 'C:\work\index.html' написать '\work\index.html' - вдруг поможет, я, если честно, не сталкивался и не пробовал. %)
Если получится, напишите плиз ))
|
|

07.05.2008, 07:44
|
Новичок на форуме
|
|
Регистрация: 30.04.2008
Сообщений: 5
|
|
Гык
Сообщение от Snipe
|
Фреймы вроде точно так же подвержены политике безопасности.
А попробуйте вместо 'C:\work\index.html' написать '\work\index.html' - вдруг поможет, я, если честно, не сталкивался и не пробовал. %)
Если получится, напишите плиз ))
|
ты приколист? =)
я автозагрузку делаю с диска, да и ни когда не использую ссылки с полным адресом типа "c:\work\index.html", а только такие: "work\index.html"
Gvozd, Спасибо за ответ, надеюсь они (программеры) сделают в будущем такую возможность, работать с файловой системой.
|
|

07.05.2008, 08:00
|
 |
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Ну, лично я надеюсь что наоборот не сделают, ибо это ОГРОМНЕЙШАЯ дыра в безопасности, и с этим наоборот на постой борются.
вам советую почитать эти статьи http://javascript.ru/ajax/transport
в особенности вторую и третью.ПОлагаю это то, что вам нада
|
|

08.05.2008, 00:36
|
 |
Профессор
|
|
Регистрация: 06.05.2008
Сообщений: 765
|
|
хм, поэкспериментировал. Iframe вроде нормально сработал с файловой системой, хотя с разными доменами не работал (точно помню).
|
|

08.05.2008, 00:58
|
 |
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
по моему для твоей цели и не нужны другие доиены))
|
|

08.05.2008, 08:01
|
 |
Профессор
|
|
Регистрация: 06.05.2008
Сообщений: 765
|
|
Да нет, я к тому, что логично предположить, что раз ajax не работает на чужие домены и в файловой системе, то и iframe'ы не должны в обоих случаях.
Но в итоге имеем, что iframe не работает только с другими доменами, а с файловой системой работает.
Хотя, конечно, я мог и напортачить где-то.
|
|
|
|