我想从Client.RegisterClientScriptBlock()
中的代码中将此音频html标记添加到页面中。有可能吗?
<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>
BaseClass的
public class BasePage : System.Web.UI.Page
{
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
//add audio tag
}
}
Page.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
....
.....
....
</asp:Content>
Page.aspx.cs
public partial class Page: BasePage
{
protected void Page_Load(object sender, EventArgs e)
{ }
}
答案 0 :(得分: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);
答案 1 :(得分: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);