请,需要帮助循环Javascript事件
Please, need help looping a Javascript event
我写了一个脚本,除了希望添加一个定时循环之外,它运行得很好。我是Javascript的新手,几天来我一直在思考这个问题,我希望一位专家能帮助我…
此外,我只需要这个在FireFox工作!
此脚本正在从XML中提取数据。如果在XML中找不到任何内容,则页面将正常显示。如果找到了什么,它会创建一个弹出div,显示找到的信息,并播放一个音频文件。
如果通过调用外部CSS样式表在XML集中找不到任何内容,则弹出窗口只是一个可见性设置为隐藏的div。如果找到了什么,那么它会引用一个单独的样式表并播放和音频文件,并将div设置更改为true。
我需要以某种方式添加一个循环,以便该脚本每20-30秒检查一次XML文件,如果发现了什么,它将显示我隐藏的DIV并播放音频警报。这个脚本功能齐全,只是我无法在不重新加载页面的情况下使脚本循环。
我想把它也保留在<head>
标签中。
<head>
<script type="text/javascript">
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","xml/SearchRequest-11988N.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
xtotaltickets=xmlDoc.getElementsByTagName("issue")[0].getAttributeNode("total");
totaltickets=xtotaltickets.nodeValue;
ytotaltickets=parseInt(totaltickets);
if (ytotaltickets<1)
{
document.write("<link rel='stylesheet' type='text/css' href='notickets.css'>");
}
else
{
document.write("<link rel='stylesheet' type='text/css' href='newtickets.css'>");
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'newticket.ogg');
audioElement.play();
}
</script>
再说一遍,我只需要这个就可以在FireFox中工作!
将代码放入函数中并使用一个间隔:
<head>
<script type="text/javascript">
function refreshXml() {
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","xml/SearchRequest-11988N.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
xtotaltickets=xmlDoc.getElementsByTagName("issue")[0].getAttributeNode("total");
totaltickets=xtotaltickets.nodeValue;
ytotaltickets=parseInt(totaltickets);
if (ytotaltickets<1)
{
document.write("<link rel='stylesheet' type='text/css' href='notickets.css'>");
}
else
{
document.write("<link rel='stylesheet' type='text/css' href='newtickets.css'>");
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'newticket.ogg');
audioElement.play();
}
}
setInterval(refreshXml, 20000);
</script>
你需要检查的其他几件事:
请确保可以多次调用该函数,而不会创建重复的内容。特别是,在创建元素之前,您应该检查所需的元素是否已经存在。
为了确保代码在正确的时间运行,您可能需要侦听主体
onload
事件。还要考虑使用jQuery,因为它将使代码更易于编写和维护。
相关文章:
- 控制器不会进入for循环:javascript
- 使用来自不同循环Javascript的数据创建数组
- 在for循环-Javascript中创建新对象
- 日期循环 Javascript
- 在循环 javascript 内部创建一个数组
- 使用 for 循环 JavaScript 的打印范围
- 使用RegExp循环数组而不是for循环(Javascript)
- 如何避免循环Javascript
- 如何停止循环 - Javascript 100%
- 我想让我的程序重新运行开头,有点像循环 JavaScript
- css转换在for循环javascript中无法正常工作
- 在for循环javascript中创建对象
- do/while语句中的if-elseif语句无限循环javascript
- 在for循环Javascript中对数字进行分类和计数
- 如何一次运行一次循环javascript
- 请,需要帮助循环Javascript事件
- 在递归循环javascript之后,为JSON键变量使用自定义HTML元素
- 嵌套循环javascript棋盘
- 如何重新启动循环javascript循环
- 在循环 JavaScript 之后刷新页面