2014-01-17 4 views
0

Я хочу программно добавить ссылку на скрипт в голову моей страницы из пользовательского элемента управления. Я избегал использования ClientScriptManager.RegisterClientScriptBlock, так как это не добавляет сценарий в голову, а тело документа.определить, если javascript уже зарегистрирован в голове

Я добавил мой сценарий, как это:

Dim Include As New HtmlGenericControl("script") 
Include.Attributes.Add("type", "text/javascript") 
Include.Attributes.Add("src", _ckEditorScript) 
Me.Page.Header.Controls.Add(Include) 

Что я неуверен способ проверить, если этот сценарий уже зарегистрирован, так что я могу избежать добавления его несколько раз, если элемент управления регистрируется более чем один раз на странице.

В один момент я добавил идентификатор

Include.Attributes.Add("id", "ckEditorScript") 

и попытался его размещения, как это, но без успеха.

If Me.Page.Header.FindControl("ckEditorScript") Is Nothing Then 

Я надеюсь, что кто-то может помочь.

+0

В зависимости от вашего проекта вы можете добавить свою ссылку как простой HTML на свой мастер-сайт. – seph

+0

Правда, но ckeditor - большой скрипт, и у нас уже есть много зарегистрированных скриптов. Я действительно не хочу заставлять людей загружать его, если у них тоже нет – DavidB

+0

. Еще один вопрос из любопытства: зачем беспокоиться, если JS находится в '' или' '? Я не думаю, что это имеет большое значение, и вы с легкостью проверяете 'Key' при использовании' RegisterClientScriptBlock'. – seph

ответ

0

Я был почти там, Глупо, я ссылался на идентификатор клиента. Я, Ве превращали в:

If Me.Page.Header.FindControl("ckeditorScript") Is Nothing Then 
     Dim Include As New HtmlGenericControl("script") 
     Include.ID = "ckeditorScript" 
     Include.Attributes.Add("type", "text/javascript") 
     Include.Attributes.Add("src", _ckEditorScript) 
     Me.Page.Header.Controls.Add(Include) 
    End If 

Незначительные придирка, что он добавляет идентификатор атрибута к моему сценарию, так, к сожалению, Netscape 4 пользователей могут возникнуть проблемы!

Смежные вопросы