javascript - 在现有的 javascript 函数中包含 .txt 文件

标签 javascript

<分区>

我有这个 javascript 函数,它需要一些我想从外部 .txt 文件调用的变量:

<script language="JavaScript">

StartCountDown("1070","08/21/2014 15:32 +0300")
StartCountDown("1071","08/21/2014 16:00 +0300")
StartCountDown("1072","08/21/2014 16:00 +0300")

... rest of the function
</script>

如果

会更好
<script language="JavaScript">

**include stuff from variables.txt here**

... rest of the function
</script>

有什么办法吗?谢谢。

最佳答案

选项 1:将 txt 加载到变量中

您可以通过 javascript/ajax 加载一个 .txt 文件同步。请记住,您的 javascript 代码执行将在此时等待,直到文件加载完毕。

var request = new XMLHttpRequest();
request.open('GET', 'text.txt', false);
request.send();
var textfileContent = request.responseText;

您也可以异步执行此操作。虽然在这种情况下您的程序逻辑将不得不等待文件加载:

var request = new XMLHttpRequest();
request.open('GET', 'text.txt');
request.onreadystatechange = function() {
    if (request.readyState === 4) {
        var textfileContent = request.responseText;
        // continue your program flow here
    }
}
request.send();

从变量(气馁)执行javascript

也可以从字符串中计算 javascript 代码。虽然这种方法不鼓励:

eval(textfileContent);

选项 2:通过脚本包含 javascript

如果你要加载的是javascript,另一种解决方案是在dom中添加一个script标签:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "text.txt";
document.body.appendChild(script);

方案三:使用json初始化变量(最适合你的需求)

如果您只是加载变量值,json 可能对您更有意义。创建一个这样的文本文件:

[
    ["1070","08/21/2014 15:32 +0300"],
    ["1071","08/21/2014 16:00 +0300"],
    ["1072","08/21/2014 16:00 +0300"]
]

阅读 json 语法 here

像这样加载 json 文件:

var request = new XMLHttpRequest();
request.open("GET", "json.txt", false);
request.send(null);
var data = JSON.parse(request.responseText);

您的数据现在在一个数组中。您可能希望循环访问这些值:

for ( var i = 0; i < data.length; i++ ) {
    var entry = data[i];
    var year = entry[0];
    var date = entry[1];
    StartCountDown(year, date);
}

选项 4:运行前合并

如果您有预处理器设置,您可能希望使用它来将文件放在一起。或者,unix 命令行工具 cat 可以轻松合并两个文件:

cat file1.txt file2.txt > new.txt

关于javascript - 在现有的 javascript 函数中包含 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25439125/

相关文章:

javascript - angularjs,browserify + 下划线

javascript - 在 Xpage 上运行 "Repeatagent"

Javascript |未捕获的类型错误 : Cannot set property 'color' of undefined

javascript - 通过 JSON 进行搜索并在 HTML 页面中显示结果

javascript - 带有调用签名实例化的 typescript 类型

javascript - 添加谷歌支付到 Adyen Web SDK

javascript - 过滤数组以便按数据类型对项目进行分组

javascript - 当我创建 setupProxy.js 时,本地主机拒绝连接

php - 将 php 输出拆分为更小的输出(ajax、php)的策略(嵌套 ajax 调用、ajax 中的 ajax?)

加载 ajax 内容时未加载 JavaScript