我有一个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>
有什么办法可以做到这一点吗?谢谢。
您可以加载一个。通过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代码计算出一个字符串.虽然这种方法是不鼓励的:
eval(textfileContent);
如果要加载的是javascript,另一个解决方案是向dom添加脚本标记:
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "text.txt";
document.body.appendChild(script);
如果您只是加载变量值,那么json可能对您更有意义。创建如下所示的文本文件:
[
["1070","08/21/2014 15:32 +0300"],
["1071","08/21/2014 16:00 +0300"],
["1072","08/21/2014 16:00 +0300"]
]
在这里阅读json语法
然后按如下方式加载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);
}
如果你有一个预处理器设置,你可能想用它来把文件放在一起。或者unix命令行工具cat
可以很容易地合并两个文件:
cat file1.txt file2.txt > new.txt