2015-04-24 2 views
1

Je veux ajouter cette balise html audio à la page du code derrière Client.RegisterClientScriptBlock(). C'est possible?Comment ajouter <audio> tag au contenu de la page dans le code derrière?

<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

pourrait vous s'il vous plaît nous dire ce que tu veux achive? –

+0

Je veux faire cela dans le code par Client.RegisterClientScriptBlock(). Mhmt

+0

Note de côté: "from code behind" signifie généralement en code C#, "dans RegisterClientScriptBlock" signifie généralement en JavaScript ... S'il vous plaît clarifier ce que vous avez un problème avec les réponses C# fournies ne semblent pas vous satisfaire. –

Répondre

3

<audio> tag? ou <html> tag?

<audio> tag vous devriez être en mesure d'ajouter avec

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

où myContainer est un conteneur dans votre modèle (par exemple un div)

Pour la partie javascript, vous devez référencer l'identifiant client du ctrl audio dans votre javascript. Vous pouvez créer votre javascript dans le backend, ou simplement créer une propriété javascript dans le backend et le mettre dans le modèle.

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

puis dans votre javascript dans le modèle

var player = document.getElementById(audioId); 
+0

Bonne réponse ... Des pensées sur le JS? – Barett

+0

Je vais essayer ce code. – Mhmt

+0

@Mhmt est-ce que cela a fonctionné pour vous? –

0

Vous pouvez utiliser ce

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); 
+0

Le fichier .wav n'est pas lu lorsque la fonction appelle. http://pastie.org/private/zs6pryra3my3x1wpnspcag – Mhmt

+0

vérifiez le support du navigateur. wav est supporté par firefox n safari seulement. https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats – naveen

+0

J'ai essayé par tous les browser.Sound file ne joue pas. – Mhmt