Локальная html-страница с локальным содержимым файла

#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> желаемой ширины.

Возможно, это не совсем то, о чем вы просили, но альтернативой является создание простого сервера, который не должен быть сложным, но, безусловно, немного сложнее.