如果我想在我的网站上有一个包含文本的div,我想如何每5秒用一个从外部文本文件列表中获取的新文本字符串替换该文本。
这样的事情,但在“textlist”div中,它将文本文件中的第一个sting放在5秒后用第二行中的文本替换它,依此类推。
CODE:
<!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
提前感谢希望它有意义。
答案 0 :(得分:4)
我做的有点不同:
<!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请求完成&#34;时,它将运行一个函数并传入检索到的数据。我们通过修剪字符串中的空白区域将数据转换为列表,并在有新行的地方将其拆分。我们还设置了一个变量来跟踪列表中的位置。
run
函数将检查我们在列表中的位置。如果我们比列表中的项目数量更远,我们会将其重置为0.然后我们将使用当前列表项替换元素的html。最后,我们在列表中向上移动一个位置。
最后,我们致电setInterval
,以便run
每5秒运行一次。
答案 1 :(得分:2)
您可以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>
(已经附加到您的文档中)您可以轻松地执行以下操作:
{{1}}
这里你是demo那样做