我有一个DotNetNuke网站,并且我得到一个'fancybox已经初始化'的错误。如何在DotNetNuke(DNN)中加载fancybox一次(JS已经包含在主题和模块中)
我想知道如何检查并且只在页面加载时包含JavaScript文件一次?我知道脚本管理器只会添加一次JS文件,但如果外观不使用脚本管理器?
的主题包括以下列方式.ascx文件的JavaScript文件:
<dnn:DnnJsInclude runat="server"
FilePath="js/jquery.fancybox3.min.js" PathNameAlias="SkinPath" />
我定制DNN模块包括代码隐藏使用脚本管理器相同的JS文件:
scriptInclude = new System.Web.UI.HtmlControls.HtmlGenericControl("script");
scriptInclude.Attributes["type"] = "text/javascript";
scriptInclude.Attributes["src"] = this.TemplateSourceDirectory + "/Scripts/jquery.fancybox.min.js";
scriptInclude.ID = ID + "_6";
Page.Header.Controls.Add(scriptInclude);
我需要将Fancybox JS添加到我的所有模块中,因为它们可以安装在已包含或未包含Fancybox的主题上。
如果模块未放置在特定页面上,我需要包含在主题中的Fancybox代码。
我一直在考虑在我的所有模块上创建一个门户设置,这将允许您关闭包含在主题中的Fancybox JS文件。
我看了其他文章,但我的问题涉及DNN模块和主题本身。
我也尝试从这个帖子的主题,使用此代码,但它似乎没有工作:how to check if fancybox exists on page already
if(typeof $.fancybox == 'function') {
fancy box loaded;
} else {
fancy box not loaded;
}
清单文件失败,因为存在带有extension.png的文件名。我确实尝试将其更改为JS文件名,但没有运气。我删除了部分,它工作并安装。我现在只需要让它在我的模块中工作。当我在模块包下面添加这段代码时,以及在DNN中选择安装.zip文件时,它显示:“信息读取组件清单 - dnn中指定的JavaScriptFile失败文件无法在zip文件中找到:”我正在使用Christoc模块模板和JS文件放置在模块文件夹中名为Scripts的文件夹中。 Thx –
Tig7r
我想你只需要改变线 scripts/jquery.fancybox.min.js ,这样它就可以在zip文件的适当位置查找js文件。 –
DotNetNuclear
另外,我将从我的答案中删除部分。这只是为了不必要的扩展图标。 –
DotNetNuclear