RSS Feed

Include mit Javascript

26.05.2006 by naden

Diese Methode ist veraltet und kann Probleme verursachen!

»Hier gibt es eine bessere Lösung!«

Oft steht man vor der Situation, dass man für eine Webapplikation ein globales Javascript hat und für speziele Bereiche des Applikation recht umfangreiche zusätzliche Javascripte benötigt.

Hier bietet es sich an, die erweiterten Funktion in eigene Dateien auszulagern und nur dann einzubinden, wenn es nötig ist. Dies kann man serverseitig lösen aber manchmal macht es Sinn dies den Client erledigen zulassen.

Ein Lösung in Javascript kann wie folgt aussehen:

/* include */
function Include( files ) {
 for( index in files ) {
  if( '/' + files[ index ][ 0 ] == document.location.pathname || files[ index ][ 0 ] == '' ) {
   document.write( '< ' + 'script type="text/javascript" src="' + files[ index ][ 1 ] + '">< ' + '/' + 'script' + '>' );
  }
 }
}
 
/* Aufruf der Include-Funktion. Ist das Erste Feld ein leerer String '', dann wird immer included */ 
Include( [ [ '', 'main.lib.js' ], [ 'messenger.php', 'messenger.class.js' ], [ 'overview.php', 'table.class.js' ], [ 'polling.php', 'ajax.class.js' ] ] );

Der Ansatz hat in jedem Fall noch Platz für Verbesserungen, ich habe den Code so aber schon recht oft nutzen können.


3 Kommentare »

  1. [...] ich vor einiger Zeit (hier) gezeigt habe, ist eine dynmische Einbindung von zusätzlichen Javascript-Dateiein aus [...]

  2. franz sagt:

    Eigentlich ein super Idee! Nur leider klappt deine Umsetzung so bei mir nicht. Mein Firefox z.B. erzeugt keinen Script-Tag, sondern schreibt die Zeichen so in den Body.
    Ausserdem fehlt das schließende Script-Tag.
    Mit folgendenden Änderungen funktioniert es bei mir super:
    – ‘ + ‘ im Start-Tag vor dem script entfernen.
    – Schließenden Script-Tag einfügen

  3. naden sagt:

    Hi Franz, du hast Recht und Unrecht ;) Der Code “war” richtig. Das dolle WordPress Plugin das ich fürs Code-Highlight benutze hat einen Teil des Codes verschluckt. Mit anderen ” + Klammerung wird es nun richtig dargestellt.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>