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.
[...] ich vor einiger Zeit (hier) gezeigt habe, ist eine dynmische Einbindung von zusätzlichen Javascript-Dateiein aus [...]
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
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.