我的网站上的每个页面都包含一个自我刷新,隐藏的iframe。每次刷新时,它都会检查数据库是否有任何新警报(网站使用经典ASP编码)。如果iframe加载并找到新警报,它将有一个播放mp3通知声音的嵌入标记。
我的问题是,当iframe使用embed标签加载时,如果用户当时正在键入,则光标将失去对任何文本字段的关注。
这似乎不是Safari,FireFox或Chrome中的问题......只有IE,而且我正在运行IE 9.这是我第一次敢于在此网站上添加音频。如果我至少可以使用所有上述浏览器的最新版本,我会很高兴。
这是我的嵌入标签:
<embed hidden="true" autoplay="true" src="/AllInclude/Sounds/Notification_1.mp3" height="0px" style="overflow:hidden"></embed>
这是我的代码,其中包含iframe:
<iframe src="/AllInclude/AlertChecker.asp" style="overflow:hidden;height:0px;position:absolute;top:-1000px" frameborder="no"></iframe>
以下是我的iframe用来刷新自己的内容:
<script type="text/javascript">
setTimeout ('ReloadPage()', 15000 );
function ReloadPage() {
window.location = window.location;
}
</script>
谢谢!
更新
我能够获得html5音频标签的工作版本来代替嵌入标签... 但是,因为音频标签是html5,我需要添加“DOCTYPE html” “在每个页面中标记这个在IE上工作。这个标签会导致我的旧ASP网站出现巨大的兼容性问题......所以不幸的是,html5不是一个选项。
答案 0 :(得分:1)
您可以使用:
iframe而不是音频或嵌入标记
<iframe id="iframe" src="blank.html" disable="disabled" style="position:absolute;top:-10px;></iframe>
<!--You will need to save a blank html file as blank.html"/-->
<script type="text/javascript'>
/*
add the condition for audio to load
*/
document.getElementById("iframe").src="AllInclude/Sounds/Notification_1.mp3"
</script>
我建议将它与上面列出的其他选项结合起来......
答案 1 :(得分:0)
好吧,在找到这个问题没有好的解决方案之后,我决定给Adobe Flash一个机会,它现在似乎是最好的选择。这不是很漂亮,也不是我想做这个工作的方式,但它有效(大多数人都安装了闪存)。
无论如何,在这里我找到了一个能够自动启动的免费flash音频播放器:
http://wpaudioplayer.com/standalone/
这就是我的代码的样子(它只实现了IE的flash播放器,因为embed标签在其他浏览器上运行得很好):
<%
BrowserType = lcase(Request.ServerVariables("HTTP_USER_AGENT"))
if onload <> "" AND InStr(BrowserType,"msie") > 0 then
%>
<script type="text/javascript" src="/AllInclude/JS/audio-player.js"></script>
<script type="text/javascript">AudioPlayer.setup("/AllInclude/Flash/player.swf", {width: 290, autostart: "yes"});</script>
<p id="audioplayer_1">Alternative content</p>
<script type="text/javascript">AudioPlayer.embed("audioplayer_1", {soundFile: "/AllInclude/Sounds/Notification_1.mp3"});</script>
<% elseif onload <> "" then %>
<embed hidden="true" autoplay="true" src="/AllInclude/Sounds/Notification_1.mp3" height="0px" style="overflow:hidden;"></embed>
<% end if %>