我有一個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