这工作
<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/