声音在Asp.Net Timer中不起作用

时间:2017-11-22 12:10:59

标签: 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>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

<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>