Seite 1 von 1

includen von javascript Dateien im Modul

Verfasst: So 2. Mär 2014, 18:01
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

Re: includen von javascript Dateien im Modul

Verfasst: Mo 10. Mär 2014, 21:26
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

Re: includen von javascript Dateien im Modul

Verfasst: Fr 31. Jul 2015, 20:46
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