#javascript #html #file
Вопрос:
У меня на компьютере есть куча простых текстовых файлов, в которых я храню заметки по различным темам, которые я изучаю, или что-то еще. Я решил создать локальную html-страницу с некоторыми css, чтобы она служила быстрым и простым, а css украшал просмотр этих файлов и использовал браузер для их отображения. Итак, у меня есть страница, которая выглядит так.
<html>
...
<body>
<ul ...>
<li> <a href="C:/.../Note1.txt">Note1</a> </li>
<li> <a href="C:/.../Note2.txt">Note2</a></li>
...
<li> <a href="C:/.../NoteN.txt">NoteN</a></li>
</ul>
<div name="content_box" ...> </div>
</body>
</html>
Ну, очевидно, что нажатие на ссылку приведет меня к текстовому файлу, но я хочу, чтобы он отображался с
стиль css, поэтому я решил, что решу эту проблему, выбрав эти локальные файлы и поместив их в этот раздел content_box с событием onclick и отключив события по умолчанию или заменив тег на какой-либо другой тег. Проблема в том, что я не могу понять, как мне прочитать локальный файл в собственном js? Я прочитал об этом, и у меня есть то, что доступ к локальным файлам javascript является проблемой безопасности, и я понимаю, почему это так, но нет ли простого решения этой проблемы? Нужно ли мне писать какую-то программу для преобразования файлов заметок в веб-страницы, если все, что мне нужно, — это текстовое содержимое, отображаемое в стилизованном поле?
Комментарии:
1. Простое решение проблемы безопасности состоит в том, чтобы обслуживать ваш HTML-код через простой локальный веб-сервер, а не просто просматривать
file://
URL-адреса.
Ответ №1:
Если вы хотите сделать что-то подобное, вам придется внести некоторые изменения. Как вы уже сказали, вы не можете извлечь содержимое локальных файлов из другого локального файла; это действительно было бы проблемой безопасности.
Одной из возможностей было бы разместить его на сервере самостоятельно. Поместите файлы в статическую папку на сервере, затем создайте на сервере страницу, которая может выполнять запросы XMLHttpRequest (или fetch) к этим файлам и отображать их.
Если у вас нет веб — сервера или вы не хотите, чтобы он находился в Интернете, вы можете установить локальный сервер-например, с помощью Express и статического каталога:
.use(express.static(path.join(process.cwd(), '/public')))
затем вы можете поместить файлы в public
каталог своей файловой системы, и их можно будет извлечь с вашей страницы. Вы сможете перейти на эту страницу с URL-адресом, похожим на http://localhost:3000/
(проверьте свою экспресс-конфигурацию, чтобы увидеть/изменить порт).
Ответ №2:
В любом случае, вы не можете сделать много стилей для .txt
файла: вы можете только установить шрифт и ширину текста до тех пор, пока он не перейдет на следующую строку.
- Шрифт можно изменить в настройках вашего браузера. В большинстве браузеров есть отдельная настройка шрифта для моноширинного, которая используется здесь.
- Ширину можно изменить, включив
.txt
файл<iframe>
желаемой ширины.
Возможно, это не совсем то, о чем вы просили, но альтернативой является создание простого сервера, который не должен быть сложным, но, безусловно, немного сложнее.