Paeonia: Bibliotheken nachladen

Hallo zusammen,

wie kann ich per click-event auf einer Seite JS-Bibliotheken nachladen?
Hintergrund:
Ich habe eine Anwendung, die ich möglichst klein und schnell halten will und nur bei click auf einen button soll eine umfangreiche Bibliothek mit Druckoptionen und Funktionen nachgeladen werden. Das soll aber die Anwender, die nicht drucken wollen, nicht belasten. Ohne neuladen der Seite und ohne erzeugen eines Popups bzw neuen Tabs, ohne jquery. Kann das überhaupt funktionieren? So etwas wie import? script.aculo.us?

Danke für Eure sonntäglichen Antworten.

Gruß von Paeonia

  1. Hallo,

    Ohne neuladen der Seite und ohne erzeugen eines Popups bzw neuen Tabs, ohne jquery. Kann das überhaupt funktionieren? So etwas wie import?

    Nativ unterstützt JavaScript so etwas nicht. Du kannst Dir aber selber so etwas bauen, in dem Du die betroffenen JavaScript-Dateien mit AJAX lädst.

    Alternativ dazu gibt es auch die Möglichkeit, nachträglich den Script-Tag beim OnClick in das DOM des HTML-Dokumentes einzuhängen - das ist aber fummelig und ich weiß nicht, wie cross-browser-fähig diese Methode ist.

    Mehr zum Thema "on demand JavaScript" findest Du z.b. auf dieser Seite.

    Viele Grüße,
    Jörg

    1. Hallo Jörg,

      vielen Dank für Deine Antwort, der Link funktioniert nicht mehr, aber mit Deinen Stichworten habe ich die aktuelle Seite gefunden. das hilft mir auf jeden Fall weiter.

      Grüße von  Paeonia

  2. Liebe Paeonia,

    Das soll aber die Anwender, die nicht drucken wollen, nicht belasten.

    was das Drucken angeht, so wirst Du mit einem anständigen Print-Stylesheet wesentlich besser fahren, als per JavaScript eine "für das Drucken optimierte Seite" zu generieren...

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  3. Hallo,

    du kannst per DOM ein script-Element erzeugen, einen Lade-Handler registrieren und das Element ins Dokument einhängen. Somit kannst du ein externes Script laden und beim Erfolg Code ausführen, der z.B. von den erzeugten Objekten Gebrauch macht.

    http://dailyjs.com/2011/09/29/framework-82/

    Alternativ kannst du (wie gesagt) XMLHttpRequest verwenden und dann den geladenen Code mit eval() ausführen.

    Frameworks wie jQuery bringen meist schon Methoden mit, um weitere Scripte nachzuladen.

    Grüße,
    Mathias