Вывод текста из .txt на страницу при помощи JavaScript
Я довольно кривой новичок, слабо смыслю в написании кода, иногда способен адаптировать чужой код под свои задачи, но не более. Пару дней бьюсь безрезультатно в поисках решения для небольшой задачки.
Суть задачки в том, чтобы выполнить код на стороне клиента и выводить из периодически перезаписывающегося .txt файла, содержащего одну строчку, на HTML страницу и отображением этого текста на странице в реальном времени. Необходимы такие извращения из-за того, что та визуальная среда, которая используется, имеет мало функционала, а адекватное внедрение кастомных решений без костылей только на основе HTML страниц. (OBS Studio)
Перепробовал множество вариантов кода путём копипасты, однако, у меня же ничего не получается с банальным выводом текста на страницу. JavaScript не строгое обязательное требование, но по тому описанию, что я смог найти, PHP не подходит из-за клиент-сайда. Если я ошибаюсь, то, пожалуйста, поправьте.
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Testing</title>
<script language="javascript" type="text/javascript"></script>
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-beta.2/css/bootstrap.css'><link rel="stylesheet" href="./style.css">
</head>
<body>
<div id="msg"></div>
<div id="test"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="./script.js"></script>
</body>
</html>
И script.js
var test;
$.ajax({
url: "test.txt",
dataType: "text",
async: true,
success: function(msg){
test = msg;
alert('Содержимое файла: '+test);
}
});
Данный код был взят отсюда. Как я понял, данный код вызывал алерт из кода Script.js с текстом из файлика в ту программу, в которой используется, поэтому его вставил как пример.
Ответы (3 шт):
js не позволяет читать локальные файлы, кроме как для отправки, поскольку это является серьезной угрозой безопасности. Существуют костыли, позволяющие настроить браузер чтобы подобное разрешить, но в общем и целом это не решение. все же вам придется использовать полноценную связку фронт/бэк
Лучше на сервере сделать php-скрипт
<?php
$filename = 'myfile.txt';
$out = file_get_contents($filename,true);
?>
<p><?php echo $out ?></p>
На сервере php скрипт, который при обращении выводит содержимое txt файла, как посоветовал Denis i. На клиенте js, который с определённым интервалом дёргает данные с сервера и выводит на экран.