好吧,这就是问题所在。我们有一个网站,在我们的各种设施中显示状态更新(他们都有带有全屏IE页面的液晶显示屏,我指向它)。现在我使用WYSIWYG编辑器进入我的管理页面,键入消息/更新,将其保存到.txt文件(alert.txt),并通过AJAX更新屏幕上的页面。屏幕上的页面以5秒的设定间隔检查更新。
我现在要做的是播放声音以在发出更新时发出警报(屏幕仅显示重要的网络错误等)
我用
<body onload="window.setTimeout('loadXMLDoc()',1000);">
调用了这个:
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("changes").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","alerts.txt",true);
xmlhttp.send();
}
</script>
我尝试通过嵌入式HTML代码(创建Flash对象,在加载Flash对象时播放一次)添加到文本文件,但这会导致每次迭代播放一次。即使没有变化。
HALP?
答案 0 :(得分:0)
在alerts.txt
div更新后,不再将Flash添加到changes
创建新的DOM对象:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("changes").innerHTML=xmlhttp.responseText;
// Add Flash object to DOM
var emb = document.createElement("embed");
emb.setAttribute("type","application/x-shockwave-flash");
emb.setAttribute("autostart","true");
emb.setAttribute("data","<your url>");
}
}
您需要更改网址以匹配声音Flash文件的网址,并添加您需要设置的任何属性
这种方法存在一个问题,即每次都会创建对象....所以也许你可以先修改删除元素然后重新添加它。
同时查看此答案 - &gt; Playing dynamically embedded sound object via Javascript