Ich habe eine DotNetNuke-Website und ich bekomme eine "Fancybox bereits initialisiert" -Fehler.Wie lade ich fancybox nur einmal in DotNetNuke (DNN) (JS ist bereits in Thema und Module enthalten)
Ich würde gerne wissen, wie ich prüfen und nur die JavaScript-Datei einmal beim Laden der Seite aufnehmen kann? Ich weiß, dass der Script Manager die JS-Datei nur einmal hinzufügen wird, aber was, wenn die Skin den Script Manager nicht verwendet?
Das Thema enthält die JavaScript-Datei in der ASCX-Datei in folgenden Weise:
<dnn:DnnJsInclude runat="server"
FilePath="js/jquery.fancybox3.min.js" PathNameAlias="SkinPath" />
Mein benutzerdefinierter DNN-Modul enthält die gleiche JS-Datei mit dem Skript-Manager in dem Code-Behind verwenden:
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);
Ich muss die Fancybox JS zu allen meinen Modulen hinzufügen, da sie auf Designs mit Fancybox installiert werden können, die bereits enthalten sind oder nicht.
Ich brauche den Fancybox-Code, der im Design enthalten ist, wenn das Modul nicht auf einer bestimmten Seite platziert ist.
Ich habe überlegt, eine Portaleinstellung für alle meine Module zu erstellen, die es Ihnen ermöglicht, die Aufnahme der Fancybox JS-Datei zu deaktivieren, wenn sie bereits im Design enthalten ist.
Ich habe andere Beiträge angeschaut, aber meine Frage betrifft DNN-Module und das Thema selbst.
Ich versuchte diesen Code in das Thema von diesem Posten zu verwenden, aber es scheint nicht zu funktionieren: how to check if fancybox exists on page already in dieser Situation
if(typeof $.fancybox == 'function') {
fancy box loaded;
} else {
fancy box not loaded;
}
Die Manifestdatei ist fehlgeschlagen, da ein Dateiname mit der Erweiterung.png vorhanden ist. Ich habe versucht, dies in den JS-Dateinamen zu ändern, aber kein Glück. Ich habe den Abschnitt entfernt und es funktioniert und ist installiert. Ich muss es jetzt erst in meinem Modul zur Arbeit bringen. Wenn ich diesen Code unter dem Modul-Paket hinzufüge und wenn ich die install .zip-Datei in DNN anwähle, wird folgendes angezeigt: "Info Reading Component Manifest - JavaScriptFile Failure Die im dnn angegebene Datei konnte nicht in der Zip-Datei gefunden werden:" Ich benutze a Die Christoc-Modulvorlage und die JS-Datei befinden sich in einem Ordner namens Scripts im Modulordner. Thx –
Tig7r
Ich denke, Sie müssen nur die Zeile scripts/jquery.fancycox.min.js ändern, so dass es nach der js-Datei an der richtigen Stelle innerhalb der Zip sucht. –
DotNetNuclear
Außerdem werde ich den Abschnitt aus meiner Antwort entfernen. Das war nur für das Erweiterungssymbol, das unnötig ist. –
DotNetNuclear