Come aggiungere Script nella Pagina <head></head> dinamicamente

Io uso asp.net 4 e c#.

Ho un Controllo Utente Web all’interno di un Web page.
Quando ho comprendono il Controllo Utente Web vorrei includere anche a livello di programmazione di script all’interno del tag per la finale di generato pagina.

Qualsiasi idea di come farlo?
Forse ScriptManager potrebbe aiutare su questo?

Vi prego di fornire un esempio di codice che ho sono abbastanza nuovo in via di sviluppo, grazie per il vostro tempo su questo!

InformationsquelleAutor GibboK | 2011-08-03

 

3 Replies
  1. 5

    La risposta di pietro aggiungere alla pagina, ma non l’elemento head. Date un’occhiata a questo articolo:

    http://weblogs.asp.net/johnkatsiotis/archive/2008/08/08/add-scripts-to-head-dynamically.aspx

    Esso fornisce un modo pulito per aggiungere uno script per la testa, elemento, usando un metodo di estensione.

    • Vorrei ricordare che uno dei cruciali bit per aggiungere qualcosa alla testa dinamicamente lato server il codice è aggiunta runat=”server” per la testa l’elemento.
  2. 3

    Dare un’occhiata a RegisterClientScriptBlock di ClientScriptManager.

    Da MSDN:

    ...
    ClientScriptManager cs = Page.ClientScript;
    
    //Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(csType, csName))
    {
      StringBuilder csText = new StringBuilder();
      csText.Append("<script type=\"text/javascript\"> function DoClick() {");
      csText.Append("Form1.Message.value='Text from client script.'} </");
      csText.Append("script>");
      cs.RegisterClientScriptBlock(csType, csName, csText.ToString());
    }
    ...
    • Grazie Pietro, ho capito, ho ancora un problema con all’interno una MasterPage, wired cosa è da un modulo web senza master pagina lo script funziona bene, se c’è un mp io non sono in grado di aggiungere il <head>… qualche idea di come risolvere il problema? grazie per il vostro tempo su questo.
  3. 1

    Mi rendo conto che questa è una vecchia questione, ma c’è un modo molto più semplice.

    Provare Questo:

    Page.Header.Controls.Add(
        new LiteralControl(
            "<script>alert('Literal Added to <Head>.');</script>"
        )
    );

    Se si desidera aggiungere lo script in un particolare indice di <head> è possibile utilizzare

    AddAt(index, new LiteralControl(...)) dove l’indice 0 è uguale al top della <head>

    Anche, joelmdev citato in un commento è necessario aggiungere runat="server" nel tag head, ad esempio, <head id="head1" runat="server">

Lascia un commento