заполнитель asp.net в заголовке страницы - PullRequest
2 голосов
/ 01 ноября 2010

У меня есть страница, которая включает в себя javascript, который я хочу запускать только при определенных условиях. Для этого я поместил скрипты в asp: placeholder

На самом деле это работает, но когда я запускаю отладку на странице, я получаю следующее предупреждение.

Элемент 'placeholder' не известен. Это может произойти, если на веб-сайте произошла ошибка компиляции или отсутствует файл web.config.

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

Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)

dim lt as new Literal()
lt.text = "<script type='text/javascript' src='scripts/pageLoadAnimations.js'></scr" & "ipt>"
me.Header.Controls.Add(lt)

End Sub

Ответы [ 3 ]

3 голосов
/ 01 ноября 2010

Вы можете включить JS-файл прямо из кода:

If (some condition is true) Then
   Page.ClientScript.RegisterClientScriptInclude("jQuery", "jquery-version.js")
End If
1 голос
/ 01 ноября 2010

Несколько способов, которые соответствуют вашим потребностям:

Во-первых, вы можете изменить тег <head> на <head id="header" runat="server">, тогда это позволит вам динамически добавлять в него что угодно, например,

dim lt as new Literal()   
lt.text = "<script type='text/javascript' src='pathtojavascriptfile'></script>"  
me.Header.Controls.Add(lt)

Или вы можете создать публичную строку на своей странице, а затем вставить в нее javascript.

Публичный _JS в виде строки

Page_Load

_JS = "alert('here');" ' Or what ever your javascript is

ASPX Page

<head>
    <script type="text/javascript" src="jquery-version.js"></script>
    <script type="text/javascript">
       $().ready(function(){
          <%=(me._JS) %>
       });
    </script>
</head>
0 голосов
/ 01 ноября 2010

Возможно, вы захотите заглянуть в ClientScriptManager. Это позволит вам правильно вводить скрипты в заголовок, используя любые необходимые условия.

Включение настраиваемого клиентского скрипта на страницах ASP.NET
ClientScriptManager Class

...