includen von javascript Dateien im Modul

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

includen von javascript Dateien im Modul

Beitrag von josh »

Hallo,

so langsam lerne ich die neue Modul-Struktur zu schätzen!
Alles liegt geordnet beim Modul. Ein Problem hatte ich mit Javascript Dateien.
Ich habe diese Lösung gefunden um sie nachzuladen.

Ich lade nur die Haupt jquery Datei in den head des Layouts.
Unten im Beispiel werden die weiteren Dateien in die DOM Struktur am Ende des head Bereichs
eingebunden. Das ist im Quellcode der Seite nicht zu sehen sondern nur im DOM Inspektor.

Hier ein Beispiel (javascript Bereich des Moduls)

Code: Alles auswählen

var script = document.createElement('script');
	    script.type = 'text/javascript';
	    script.src = tplurl_slideshow_m+"vendor/slideshow/slideshow_m.min.js";
	    $("head").append(script);
Die js Datei liegt beim Modul im Ordner vendor. Eine .htaccess Datei in den Ordner legen:

Code: Alles auswählen

# Prevent access to this folder
Order Deny,Allow
Allow from all
Die Variable tplurl_slideshow_m habe ich in den Ausgabebereich des Moduls geschrieben

Code: Alles auswählen

<?php
$mod = new cApiModule($cCurrentModule);
$tplpath = $cfgClient[$client]["path"]["frontend"]."data/modules/".$mod->get("alias")."/";
$tplurl = "/cms/data/modules/".$mod->get("alias")."/";

// Modulpfad fuer javascript 
echo '<script type="text/javascript">';
echo 'var tplurl_slideshow_m = "/cms/data/modules/'.$mod->get("alias").'/"';
echo '</script>';
?>
Das funktioniert auch mit css Dateien

Code: Alles auswählen

var link = document.createElement('link');
	    link.type = 'text/css';
	    link.href = "jquery/ui/css/jquery.ui.all.css";
	    link.rel = 'stylesheet';
	    $("head").append(link);
Danke an xmurrix und homtata ich habe wie Ihr seht bei euch einiges abgekupfert.

Viele Grüße

josh
josh
Beiträge: 156
Registriert: Do 24. Jun 2004, 09:25
Wohnort: Ahlen
Kontaktdaten:

Re: includen von javascript Dateien im Modul

Beitrag von josh »

Hallo,

Ein Nachtrag...

In einigen Modulen läuft das oben geschilderte problemlos.
Andere js Dateien fangen im Standard Andrioi Browser an zu spinnen.
Auf dem PC läuft aber alles.

Bei Problemen am besten erstmal das klassische Einbinden im Header probieren.
Vielleicht hat jemand schon Erfahrungen gemacht und kann zur Klärung beitragen?

Viele Grüße

josh
Spl4sh3r
Beiträge: 20
Registriert: So 1. Dez 2013, 16:28
Kontaktdaten:

Re: includen von javascript Dateien im Modul

Beitrag von Spl4sh3r »

Hallo josh,

Code: Alles auswählen

$("head")
sollte nicht unbedingt direkt verwendet werden, damit haben einige (vor allem ältere) Systeme ihre Schwierigkeiten

Probier es mal hiermit:

Code: Alles auswählen

$(function () {  
	var top = $('script').parent();
	var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = tplurl_slideshow_m+'vendor/slideshow/slideshow_m.min.js';	   
	top.append(script);
});
Äquivalent oder Alternativ:

Code: Alles auswählen

$('link')
HTML5 natürlich dann ohne

Code: Alles auswählen

script.type
Hoffe es läuft dann runder!

Beste Grüße,
Benjamin
Antworten