How to add a Lightbox to a custom DotNetNuke module

扶醉桌前 提交于 2019-12-11 16:14:38

问题


I'm working on a custom DotNetNuke module which requires the use of Lightbox. What's the best way to add the javascript necessary for Lightbox to a DNN module?

Nearly all the solutions I've seen involve adding the javascript references to the skin file. Is there another way to accomplish this? I'd hate to have those javascript files being loaded even for modules which don't need them.

=====================================================================

Thanks to spinon's help, here's the solution I'm using:

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:


Well you can always just include them right into your module if it is only for certain modules. The resulting HTML will not be pretty but that is one solution.

Or from the .net code access the .net script manager. I forget the class name right now but you can have that load the scripts.

Either way both solutions would avoid loading the js for all pages, which is what would happen if you put it in the skin.

EDIT: Here is the class information:

Page.ClientScript.RegisterClientScriptBlock(....); 

http://msdn2.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerclientscriptblock.aspx



来源:https://stackoverflow.com/questions/3339356/how-to-add-a-lightbox-to-a-custom-dotnetnuke-module

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!