Christopher Schmidt: Text einfügen - ohne ihn extra in die Datei zu schreiben!

Ich habe ein Problem. Auf meiner Website kommt immer am Anfang eine große HTML-Navigationsleiste. Nun ist dies sehr müselig, dies immer am Ende einer Datei zu schreiben, und die Datei wird automatisch sehr groß. Auf Kosten meines Webspaces! Desshalb meine Frage: Kann ich per Javascript in einer HTML-Seite Text am Anfang/Am Ende einblenden, ohne diesen in die Datei zu schreiben!

PS: Da kommt gleich jemand mit Frames an! Ich möchte dies aber ohne Frames!
PPS: Ein Freund hat  mir mal gemailt:

hij...

hier mein Vorschlag, geht leider nur beim IE:

welcherlayer = '<div align="center"><p>Autor:..., Copyright...</p></div>';
document.all.tags("body").insertAdjacentHTML("BeforeEnd",welcherlayer);

das hauste inne externe *.js datei und bindest die auf jeder seite am anfang ein...dann sollte ganz am ende immer dein layer zu sehen sein
soll er ganz oben stehen mußte anstatt 'BeforeEnd' 'AfterBegin' schreiben...

Leider funktiert dies Script nicht! Bitte postet den Quelcode, wenn ihr ihn wisst/ und oder versteht, hier herein!

  1. Du solltest dies nicht mit Javascript sondern mit einer Serversprache bewerkstelligen. Am einfachsten ist wohl ssi: http://selfhtml.teamone.de/cgiperl/intro/ssi.htm

    In jeder Datei wo das Menü reinsoll schreibst du

    <html>
    [..]
    <body>
    [..]
    <!--#include file="news/menu.htm" -->
    [..]
    </html>

    und speicherst sie mit der Endung shtml ab.

    in menu schreibst du nur das menu sebst (also kein <html>, <body> etc.)

  2. welcherlayer = '<div align="center"><p>Autor:..., Copyright...</p></div>';
    document.all.tags("body").insertAdjacentHTML("BeforeEnd",welcherlayer);

    das hauste inne externe *.js datei und bindest die auf jeder seite am anfang ein...dann sollte ganz am ende immer dein layer zu sehen sein
    soll er ganz oben stehen mußte anstatt 'BeforeEnd' 'AfterBegin' schreiben...

    wenn du dein menu in einem <div> "aufbewahrst" kannst du dengleichen einfach dynamisch befüllen...

    such mal nach folgenden stichworten (stehen alle im syntaxverzeichnis von SelfHTML):

    • GetElementByID

    • GetElementByName

    • innerHTML bzw. innerText

    • document.open bzw. document.clear

    • document.write

    • document.close

    dann hast du auch chancen, dass es nicht nur im ie funktioniert...

    netscape erwartet für sowas positionierte elemente!

    1. Dummerdings funktioniert dein Ansatz nur noch im IE >= 5 und NS >= 6 und evtl. noch im Konqueror >= 2. NN4 und Opera User haben davon nix. lnyx-User gleich garnicht.

      Gruß herbalizer

      1. Dummerdings funktioniert dein Ansatz nur noch im IE >= 5 und NS >= 6 und evtl. noch im Konqueror >= 2. NN4 und Opera User haben davon nix. lnyx-User gleich garnicht.

        Gruß herbalizer

        ich will mich mit dir wirklich nicht rumstreiten, aber so ungefähr weiss ich schon worüber ich rede....

        das geht sehr wohl mit nn4 - auch aus einer externen datei, wie gesagt mit positionierten elementen!

        was opera und lynx user angeht, die gehen mir ehrlich gesagt am a.... vorbei.

        ...wobei wir wieder bei dem anderen thread angekommen wären - wie war das nochmal mit standards und so??

        wenn jeder hersteller glaubt, er könne sein eigenes ding fahren, dann tut es mit leid sparten-browser-user ignorieren zu müssen! - ja ich weiss netscape wird langsam (endlich) auch zum sparten-browser.

        1. wenn jeder hersteller glaubt, er könne sein eigenes ding fahren, dann tut es mit leid sparten-browser-user ignorieren zu müssen! - ja ich weiss netscape wird langsam (endlich) auch zum sparten-browser.

          Netscape und damit Mozilla wird demnächst Defaultsoftware bei allem was zu AOL/Timewarner auch nur im Ansatz dazugehört. Damit dürfte sich ein Teil des IE-Markteinteils wieder in Luft auflösen.
          Ansonsten sollte man nicht unbedingt Clientscripte benutzen wo sie nicht der Funktionalität dienlich und unvermeidbar sind.

  3. Weiss nicht, ob das Dein Problem loest, aber probier doch ein externes JavaScript einzubinden. In jenes externe JavaScript schreibst Du dann mit:
      document.write('<h1>Ueberschrift</h1>blahblah<br>blah...');
    Deine Kopf- bzw. Fusszeilendaten. Easy!

  4. Hi,

    welcher Teil Deiner Anforderungen ist Dir wie wichtig?

    Nun ist dies sehr müselig, dies immer am Ende einer
    Datei zu schreiben,

    Dagegen hilft, die Seiten serverseitig dynamisch
    generieren zu lassen. SSI, PHP etc. sind Dein Freund.

    und die Datei wird automatisch sehr groß.

    Die Datei nicht - das ausgelieferte Dokument schon.
    Das merkst nicht Du, aber Deine Besucher.

    Hast Du die Möglichkeit, Deine Seiteninhalte komprimiert an den Browser auszuliefern?

    Auf Kosten meines Webspaces!

    Bei statischer Einbindung - ja. (Das wäre allerdings
    schon vom Pflegeaufwand nicht zu empfehlen.)
    Bei dynamischer Einbindung - nein.

    Deshalb meine Frage: Kann ich per Javascript in
    einer HTML-Seite Text am Anfang/Am Ende einblenden,
    ohne diesen in die Datei zu schreiben!

    Ja. Aber das ist viel komplizierter als eine server-
    seitige Einbindung, und im Gegensatz zu dieser wird
    es bei allen Browsern, die kein JavaScript aktiv
    haben oder unterstützten, nicht funktionieren.

    hier mein Vorschlag, geht leider nur beim IE:
    document.all.tags("body").insertAdjacentHTML("BeforeEnd",welcherlayer);

    "document.all" ist in der tat eine M$IE-proprietäre
    Erfindung, und der Rest wahrscheinlich auch.

    Leider funktiert dies Script nicht!

    Auch nicht im M$IE?
    Oder nur in standardkonformen Browsern?

    Bitte postet den Quelcode,

    Self ist der Mann. Und ich halte JavaScript auch
    nicht für einen geeigneten Lösungsansatz.

    Viele Grüße
          Michael