1

我想将此音频 html 标记从后面的代码添加到页面中Client.RegisterClientScriptBlock()。可能吗?

<audio id="A"></audio>
<script type="text/javascript">
    var player = document.getElementById("A");
    function Alert() {
        player.preload = 'auto';
        player.src = "/Sounds/tada.wav";
        player.play();
    }
</script>

基类

public class BasePage : System.Web.UI.Page
{

protected override void OnPreRender(EventArgs e)
{
   base.OnPreRender(e);

  //add audio tag 

}

}

页面.aspx

 <asp:Content ID="Content1" ContentPlaceHolderID="MainContent"  runat="server">
 ....
 .....
 ....
</asp:Content>

页面.aspx.cs

public partial class Page: BasePage
{
   protected void Page_Load(object sender, EventArgs e)
    {  }

}
4

2 回答 2

3

<audio>标签?或<html>标签?

<audio>您应该可以添加的标签

var ctrl = new HtmlGenericControl("audio");
myContainer.Add(ctrl);

其中 myContainer 是模板中的容器(例如 div)

对于 javascript 部分,您需要在 javascript 中引用音频 ctrl 的客户端 ID。您可以在后端构建您的 javascript,或者只是在后端构建一个 javascript 属性并将其放入模板中。

var scriptText = String.Format("var audioId = {0};", ctrl.ClientId);
ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", scriptText, true);

然后在模板中的javascript中

var player = document.getElementById(audioId); 
于 2015-04-24T16:16:52.110 回答
0

你可以用这个

var myAudio = new System.Web.UI.HtmlControls.HtmlAudio();
myAudio.Attributes.Add("autoplay", "autoplay");
myAudio.Attributes.Add("controls", "controls");
myAudio.Src = "test.mp3";
Form.Controls.Add(myAudio);
于 2015-04-24T16:41:06.510 回答