[英]how can I get text strings from list in txt document?
如果我想在我的网站上创建一个包含文本的div,并且想每5秒用一个新的文本字符串替换该文本,该字符串是从外部文本文件的列表中获取的,该怎么办。
因此,类似这样,但在“文本列表” div中,它将文本文件中的第一个字符串替换为第二行中的文本,然后在5秒钟后将其替换,依此类推。
码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test_text</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function run() {
document.getElementById("textlist").innerHTML = "The sting from the text file";
}
window.setInterval(run,5000);
</script>
</head>
<body>
<div id="textlist">the text</div>
</body>
</html>
文本文件例如如下所示:
/mytextfile.txt
(文件中的内容)
01:技巧1
02:技巧2
03:技巧3
04:技巧4
05:技巧5
06:技巧6
在此先感谢,希望如此。
我会做一些不同的事情:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test_text</title>
</head>
<body>
<div id="textlist">the text</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
var ajax = $.ajax({
url: 'the url to the text list',
type: 'GET'
});
ajax.done(function (data) {
var list = $.trim(data).split(/\n+/), index = 0;
function run() {
if (index >= list.length) {
index = 0;
}
$('#textlist').html(list[index]);
index ++;
}
window.setInterval(run, 5000);
});
});
</script>
</body>
</html>
因此,在此示例中,我们首先将所有脚本移到正文的底部。 这样,我们可以确保在脚本运行之前就已经渲染了HTML。
其次,我们将自定义JavaScript放入jQuery docready。 这样,在脚本尝试运行之前,我们可以完全安全地确保页面是完全交互式的。
我们要做的下一件事是使用ajax来获取文本文件。 由于同源策略,仅当该文件位于为网页提供服务的同一服务器上时,此方法才有效。
之后,我们将处理程序附加到ajax promise。 换句话说,当ajax请求“完成”时,它将运行一个函数并将传入的数据传递出去。 我们通过修剪字符串的空白并将其拆分到任何有新行的地方,将数据转换为列表。 我们还设置了一个变量来跟踪我们在列表中的位置。
run
功能将检查以查看我们在列表中的位置。 如果超出列表中的项数,则将其重置为0。然后将元素的html替换为当前列表项。 最后,我们在列表中上移一位。
最后,我们调用setInterval
使run
将运行一次,每5秒。
警告:我还没有测试过,但是从概念上讲它会起作用。 我可能不知道与服务器有关,但可能有错别字或某些特定的Ajax要求,但我所描述的过程应该可以工作。
您可以为此使用ajax
。通过jquery
(已附加到文档中)可以轻松地执行以下操作:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test_text</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
var lines="";
$.get( "your_text_file_path", function( data ) {
lines=data.split("\n");
});
var i=0;
window.setInterval(function (){
if(i<=lines.length){
$("#textlist").html(lines[i]);
i++;
}else{
i=0;
}
},5000);
</script>
</head>
<body>
<div id="textlist">the text</div>
</body>
</html>
这是你的演示吗
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.