我正在开发一个需要使用Lightbox的自定义DotNetNuke模块。将Lightbox所需的javascript添加到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
答案 0 :(得分:1)
如果仅适用于某些模块,您可以随时将它们直接包含在模块中。生成的HTML不会很漂亮,但这是一个解决方案。
或者从.net代码访问.net脚本管理器。我现在忘记了类名,但你可以加载脚本。
无论哪种方式,两种解决方案都可以避免为所有页面加载js,如果将其放入皮肤中会发生这种情况。
编辑:这是班级信息:
Page.ClientScript.RegisterClientScriptBlock(....);