Как добавить лайтбокс в пользовательский модуль DotNetNuke
Я работаю над пользовательским модулем DotNetNuke, который требует использования Lightbox. Каков наилучший способ добавить JavaScript, необходимый для Lightbox в модуль DNN?
Почти все решения, которые я видел, включают добавление ссылок javascript в файл скина. Есть ли другой способ сделать это? Я бы не хотел, чтобы эти файлы javascript загружались даже для модулей, которые в них не нуждаются.
================================================== ===================
Благодаря помощи Spinon, вот решение, которое я использую:
Dim csMgr As ClientScriptManager = Page.ClientScript
Dim Name As String = "prototype.js"
Dim ScriptPath As String = "http://dnn/js/prototype.js"
Dim Type As Type = Me.GetType
'check if script is already registered
If Not csMgr.IsClientScriptBlockRegistered(Type, Name) Then
Dim scriptText As New StringBuilder
scriptText.AppendLine()
scriptText.Append("<script src=""")
scriptText.Append(ScriptPath)
scriptText.Append(""" type=""text/javascript""></script>")
scriptText.AppendLine()
'register script
csMgr.RegisterClientScriptBlock(Me.GetType, Name, scriptText.ToString())
End If
1 ответ
Ну, вы всегда можете просто включить их прямо в ваш модуль, если это только для определенных модулей. Получающийся HTML не будет красивым, но это одно из решений.
Или из кода.net получить доступ к диспетчеру скриптов.net. Я забыл имя класса прямо сейчас, но вы можете загрузить сценарии.
В любом случае оба решения позволят избежать загрузки js для всех страниц, что произойдет, если вы поместите его в скин.
РЕДАКТИРОВАТЬ: Вот информация о классе:
Page.ClientScript.RegisterClientScriptBlock(....);