asp.net - 声音在Asp.Net计时器中不起作用

标签 asp.net ajax audio timer

这工作

<embed height="100" width="100" src="WindowsStartup.wav" />

但这不起作用
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval="4000">
    <embed height="100" width="100" src="WindowsStartup.wav" />
</asp:Timer>

我怎样才能解决这个问题 ?

最佳答案

问题源是您将embed标记嵌套在 asp:Timer 服务器控件中:

<asp:Timer ID="Timer1" runat="server" Interval="4000">
    <%-- This should be placed outside --%>
    <embed height="100" width="100" src="WindowsStartup.wav" />
</asp:Timer>

通过在浏览器开发工具中检查渲染的HTML输出,我发现嵌套在embed控件内的Timer标记完全消失了,留下了带有span的隐藏id="Timer1"标记,其中asp:Timer放在之前:
<span id="Timer1" style="visibility:hidden;display:none;"></span>

要解决此问题,请将embed标记放在控件标记之外,因为服务器控件标记内的任何内容都可能保留给control properties,并且可能未呈现其中的纯HTML标记(某些能够容纳HTML模板的属性除外)(例如ItemTemplate)。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<embed height="100" width="100" src="WindowsStartup.wav" />
<asp:Timer ID="Timer1" runat="server" Interval="4000">
</asp:Timer>

这是上述标记的输出:
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', 'form1', [], [], [], 90, '');
//]]>
</script>

<embed height="100" width="100" src="WindowsStartup.wav" />
<span id="Timer1" style="visibility:hidden;display:none;"></span>

关于asp.net - 声音在Asp.Net计时器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47434408/

相关文章:

php - 如何获取html页面源中未显示的内容

audio - 如何使用在fullpage.js的每张幻灯片中加载音频文件?

c# - 如何在 asp.net 中实现 "Add to clipboard"功能

c# - 用户驱动的 session 过期

php - 如何通过ajax加载tinymce文本区域

javascript - 如何计算总时数?

algorithm - 如何合成亥姆霍兹谐振器(适用于 iPhone 的 la Ocarina)

ios - 每隔一段时间播放一次UILocalNotification声音

html - 如何设置页码样式以不与自定义寻呼机中的上一行重叠

c# - 错误 : Object reference not set to an instance of an object