Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Чтение из тектового файла (https://javascript.ru/forum/misc/1561-chtenie-iz-tektovogo-fajjla.html)

Jackky 14.08.2008 12:18

Чтение из тектового файла
 
Как с помощью js организовать чтение из текстового файла? Например у меня есть большое меню сайта, которое будет одинаковым на всех страницах сайта, но при этом я планирую часто вносить в него изменения. Я хочу, чтобы меню у меня хранилось в текстовом файле, например, menu.txt, а на всех страницах присутсвовал бы на месте меню скрипт, выводящий весь код из файла menu.txt.

Андрей Параничев 14.08.2008 13:50

Лучше это делать используя серверные языки. Тем не менее, на JavaScript есть инструменты для загрузки (чтения) определенного файла с сервера, с помощью AJAX. Вам нужно будет асинхронно получить данные (в данном случае html код меню) с сервера и вставить их в нужное место.

ZoNT 14.08.2008 15:38

А лучше написать меню полностью на js и вставлять только <скрипт срц="меню.жс"> на каждую страницу.

Jackky 14.08.2008 21:32

эммм... тоесть тут нет такой функции как в php? Скрипт меню на js

ZoNT 14.08.2008 21:48

тут нет такой функции как в php
какой функции???

Jackky 17.08.2008 22:29

функции readfile

ZoNT 17.08.2008 23:59

а какой файл по-твоему будет читать джаваскрипт? К серверу он доступа не имеет, выполняется в браузере. Если он будет иметь доступ к локальному диску, то безопасности никакой не будет. Так что джаваскрипт не работает с файлами...

Vit 19.08.2008 06:50

ПХП работает на сервере, ява - локально на тачке, открывшей страницу. Т.е. таким образом ява не может получить доступ к файлу, находящемуся на сервере.

На сколько понял вопрос: необходимо постоянно менять меню, которое крепится к куче страничек. Ну так что бы не изобретать велосипед не проще ли вынести тот же хтмл или ява код меню в отдельный файл, который линковать на тех страницах, где нужно меню и так же в случае необходимости можно будет подредактировать только файл с меню. Те же яйца - вид сбоку.

ZoNT 19.08.2008 09:44

Цитата:

Сообщение от Vit (Сообщение 4709)
ПХП работает на сервере, ява - локально на тачке, открывшей страницу. Т.е. таким образом ява не может получить доступ к файлу, находящемуся на сервере.

Не вводи людей в заблуждение: не ява, а джваСкрипт (разные языки).

Vit 20.08.2008 13:25

Цитата:

Сообщение от ZoNT (Сообщение 4719)
Не вводи людей в заблуждение: не ява, а джваСкрипт (разные языки).

Ну так это и имелось ввиду :)
Я думал и так понятно, так как в тее разговор именно про явуСкрипт

ZoNT 20.08.2008 13:29

некоторым так понятно, а некоторые системный блок процессором называют...

Dekker8 16.09.2008 23:14

Если хочешь считать текстовый файл то тебе нужно использовать ActiveX и ето будет работать только в ентернет експлорере. Если надо пиши мне на dekker8@mail.ru я тебе отправлю статью о том как ето сделать

DANGLA 20.12.2010 08:42

Можно вставить с помощью html.
EX:<IFRAME SRC="test.txt" iframeborder="0" height="30px" width="600px"></IFRAME>

Mozgoed 29.06.2012 14:10

Есть такое решение. И оно называется XmlHttpRequest . С его помощью можно из javascript скачать любой файл с того же домена, где он запущен. Скачивание работает только через UTF-8 кодировку. Поэтому строить такой сайт лучше на базе Юникода.
Своё решение в этой области я попробовал реализовать вот на этом сайте mozgoed-mgoy.narod.ru .
Устроен он предельно просто. Это что-то вроде CMS, которая выводит данные через одну страничку и дополнительные параметры в строке запроса. Внешне выглядит как будто работает на движке Joomla или типа того)
Что нужно чтобы работало:
  1. Создать шаблон и выделить повторяющиеся элементы в нём.
  2. Подключить javascript "engine.js" к странице.
  3. content-type страницы должен быть utf-8
  4. Повторяющиеся блоки сохранить под именами (например footer.htm) в папке "blocks"
  5. В шаблоне вставлять нужный блок через javascript функцию <script>writeBlock(имя_блока)</script>
Добавил модуль новостей и продолжаю развивать эту идею. Данную CMS назвал JSManager или просто jsm. Идеальное применение такого решения - простые сайты визитки и минисайты фирмы.
Минусы:
  • Дольше грузится
  • Невозможно разграничить пользовательские права на сайте. Данные доступны всем.
  • Можно использовать только на маленьком сайте, для управления большим сайтом надо подключать AJAX и действовать через PHP сервер, который по FTP изменяет структуру сайта.
  • Загруженный текст не индексируется (нужно строить карту сайта самому)
  • Большие проблемы с совместимостью на разных серверах. Нормально работает на Chrome, а остальные пока тупят.
Плюсы:
  • Взломать сайт невозможно через интерфейс управления движком. Потому что вывод всех данных производится только на стороне клиента.
  • Шаблонизация страниц. Легче разобраться в коде дизайна
  • Можно быстро изменить какой-либо элемент на всех подопечных страницах. (напоминает глобальные переменные как в uCoz'e)
  • Можно динамически вкладывать одни скрипты в другие. Например забыть про вывод текущего года раз и навсегда через специальную функцию javascript

denis_orlov 30.06.2012 01:00

Цитата:

Сообщение от Jackky (Сообщение 4542)
Как с помощью js организовать чтение из текстового файла? Например у меня есть большое меню сайта, которое будет одинаковым на всех страницах сайта, но при этом я планирую часто вносить в него изменения. Я хочу, чтобы меню у меня хранилось в текстовом файле, например, menu.txt, а на всех страницах присутсвовал бы на месте меню скрипт, выводящий весь код из файла menu.txt.


храните меню в текстовом файле, например, menu.js в виде массива или объекта, и формируйте из него, что вам надо
<ul id="menu"></ul>

<script>
var menuObj ={
'Главная':'/index.html',
'О проекте':'/about.html',
'Контакты':'/contacts.html',
};

var innerH='';
for( var item in menuObj ) 
innerH+='<li><a href="'+menuObj[ item  ]+'">'+item+'</a></li>';

document.getElementById('menu').innerHTML = innerH;
</script>


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