我有这个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文件:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句