我正在尝试获取一个文件并将其分配给一个数组并从数组中随机获取一个字符串并将其打印在html上。我在python中完成了整个项目。但我从来没有用JavaScript编程,也不确定如何继续。我认为问题可能在于分配给数组的文件,但我很困惑。
<!doctype html>
<html>
<head>
<title>Julia Mount</title>
</head>
<body onload="ll()">
<style>
body{
background-color:lime;
}
#wat{
padding-top:auto;
margin: auto;
text-align:center;
}
</style>
<script type="text/javascript">
var fs = require("fs");
var text = fs.readFileSync("./mytext.txt");
var textByLine = text.split("\n")
var ll = ["wat","idk"
];
//stuff im trying
//var randomIndex = Math.floor(Math.random() * textArray.length);
//var randomElement = textArray[randomIndex];
//document.getElementById("ll").innerHTML = randomElement;
ll.toString();
//document.getElementById("ll").innerHTML = ll;
</script>
<h1 id="wat">I love </h1>
<p></p>
<script type="text/javascript">
document.write($ll)
</script>
</body>
</html>
答案 0 :(得分:0)
JavaScript没有访问文件的本机机制。它取决于主机环境提供的功能。
var fs = require("fs"); var text = fs.readFileSync("./mytext.txt");
这些是Node.js提供的功能,但不是Web浏览器提供的功能。
要运行此代码,您需要将其从HTML页面中删除,然后使用Node.js运行它。
有关使用嵌入在网页中的JS读取文件的信息,请参阅this question。
答案 1 :(得分:0)
如另一个答案所述,您尝试使用服务器端(nodeJs)代码在浏览器中获取文件,以获取浏览器中.txt
文件的内容({{1您需要使用Ajax执行XMLHttpRequest请求,将其包装在函数中并返回Promise以确保所有内容都在执行Synchronously
替换这些行:
html
with:
var fs = require("fs");
var text = fs.readFileSync("./mytext.txt");
var textByLine = text.split("\n");