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?

+1

为什么这个标记为jQuery和PHP? – ManseUK

+0

这个文本文件是通过PHP编辑的,Jquery是一个错误。但你是来这里做标签纳粹还是回答这个问题? –

+1

我来这里试图回答一个jQuery的问题......但看到你这么客气,我会加我的答案.... – ManseUK

而不是添加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

代码不工作,没有嵌入正在创建。 –