AJAX和播放声音一次
问题描述:
好的,所以这是问题所在。我们有一个网站,可以显示我们各种设施的状态更新(他们都有带有指向全屏IE页面的LCD)。现在我用一个WYSIWYG编辑器进入我的管理页面,输入消息/更新,将其保存为.txt文件(alert.txt),并通过AJAX更新屏幕上的页面。屏幕上的页面以5秒的设定间隔检查更新。AJAX和播放声音一次
我想现在要做的就是播放声音以提醒时,给出更新(屏幕只显示关键的网络错误,例如)
我用
<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?
答
而不是添加Flash进入alerts.txt
的创建一旦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>");
}
}
您需要更改URL以匹配您的声音Flash文件的网址,并添加你需要设置的任何属性
这种方法存在一个问题,因为每次都会创建对象....所以也许你可以先改变删除元素然后重新添加它。
也检查出这个答案 - >Playing dynamically embedded sound object via Javascript
+0
代码不工作,没有嵌入正在创建。 –
为什么这个标记为jQuery和PHP? – ManseUK
这个文本文件是通过PHP编辑的,Jquery是一个错误。但你是来这里做标签纳粹还是回答这个问题? –
我来这里试图回答一个jQuery的问题......但看到你这么客气,我会加我的答案.... – ManseUK