Как динамически добавить скрипт на страницу <head></head> - PullRequest
2 голосов
/ 03 августа 2011

Я использую asp.net 4 и c #.

У меня есть веб-контроль пользователя на странице веб-страницы. Когда я включаю пользовательский веб-элемент управления, я бы также хотел программно включить некоторые скрипты в теги для окончательно сгенерированной страницы.

Есть идеи, как это сделать? Может быть, ScriptManager мог бы помочь в этом?

Пожалуйста, предоставьте мне пример кода, я довольно новичок в разработке, спасибо за ваше время!

Ответы [ 3 ]

5 голосов
/ 03 августа 2011

Ответ Питера добавит на страницу, но не элемент head.Взгляните на эту статью:

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

Он предоставляет хороший чистый способ добавить скрипт в элемент head с помощью метода расширения.

3 голосов
/ 03 августа 2011

Взгляните на RegisterClientScriptBlock ClientScriptManager.

Из 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());
}
...
1 голос
/ 01 октября 2015

Я понимаю, что это старый вопрос, но есть гораздо более простой способ.

Попробуйте:

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

Если вы хотите добавить скрипт с определенным индексом<head> вы можете использовать

AddAt(index, new LiteralControl(...)), где индекс 0 равен вершине <head>

Кроме того, joelmdev, упомянутый в комментарии, необходимо добавить runat="server" в вашей головетег например <head id="head1" runat="server">

...