Michael: externer Code einbinden klappt, aber...

Hallo zusammen,

Ich beziehe mich auf die Diskussion von http://www.teamone.de/selfaktuell/forum/?m=135062&t=25872
Ist zwar schon ein Weilchen her, aber für mich wieder aktuell.

Bei mir klappt das mit dem Einbinden des externen js-File bestens, nur habe ich noch folgendes Problem.

Nach dem Einlesen der js-Datei erscheint in allen Browsern (IE5,NN4,NN6 getestet) das alert, jedoch kennt er danach, wenn er den Code in die Ebene main schreiben soll, die Ebene nicht:

document.getElementById ist Null oder kein Objekt (oder so ähnlich)

Weiss jemand, woran das liegt? zum Schluss noch der Quelltext:

************* Auszug hauptseite.html (js-Aufruf) *************
<script language="JavaScript">

var seite = window.location.search;
var y = seite.length;
var ext = seite.substr(1,y);
if (ext != "")
 {
 ext = ext+".js";
 self.document.open()
 self.document.write('<script language="JavaScript" src="'+ext+'" type="text/javascript"></scr'+'ipt>');
 self.document.close()
 }

</script>

************** die js-Datei aus ext ***********
 alert("Supi")
 var text2 = "Hallo Welt!";

if (document.getElementById)
 {
  document.getElementById('main').innerHTML = text2;
 }
 else if (document.all)
 {
  document.all['main'].innerHTML = text2;
 }
 else if (document.layers)
 {
  document.layers['main'].document.open();
  document.layers['main'].document.write(text2);
  document.layers['main'].document.close();
 }

Vielen Dank für die Hinweise.
Gruss
Michael

  1. Hallo Michael,

    Ich beziehe mich auf die Diskussion von http://www.teamone.de/selfaktuell/forum/?m=135062&t=25872

    hatte keine zeit das durchzulesen

    document.getElementById ist Null oder kein Objekt (oder so ähnlich)

    in welcher zeile?
    in der mit dem if? Ich weis nicht ob js methoden abfragen kann. Frag doch nach document.documentElement

    self.document.write('<script language="JavaScript" src="'+ext+'" type="text/javascript"></scr'+'ipt>');

    .................................................................... ..........................^^^^^^^^
    was erreichst du eigentlich damit?

    ************** die js-Datei aus ext ***********
    alert("Supi")
    var text2 = "Hallo Welt!";

    if (document.getElementById)

    if (document.documentElement)

    {
      document.getElementById('main').innerHTML = text2;
    }
    else if (document.all)
    {
      document.all['main'].innerHTML = text2;
    }
    else if (document.layers)
    {
      document.layers['main'].document.open();
      document.layers['main'].document.write(text2);
      document.layers['main'].document.close();
    }

    HTH

    Bye Ed X

    1. Hi!

      ich meinte die 3 Zeilen, wo er text2 in die DIV-Ebene main ausgeben sollte. Er kennt die Ebene main nicht mehr.

      Die ifs sind ja nur Browsererkennung. Ein if (document.getElementById) geht sehr wohl und problemlos.

      Gruss
      Michael

      1. Hi Michael,

        ich meinte die 3 Zeilen, wo er text2 in die DIV-Ebene main ausgeben sollte. Er kennt die Ebene main nicht mehr.

        ...........................................................................................^^^^^^^^^^^^^^^^^^^^^^
        Er kennt die Ebene noch nicht.

        Du führst dein eingebundenes js aus bevor die seite geladen ist und des halb gibt es noch keine Ebene "main". Schreib es in eine function und führe sie onload im body aus und alles ist gut....

        Die ifs sind ja nur Browsererkennung. Ein if (document.getElementById) geht sehr wohl und problemlos.

        Wieder was dazugelernt ;-)

        Bye Ed X

    2. Hallo EdX!

      self.document.write('<script language="JavaScript" src="'+ext+'" type="text/javascript"></scr'+'ipt>');
      .................................................................... ..........................^^^^^^^^
      was erreichst du eigentlich damit?

      Über Michaels Gründen werde ich keine Vermutungen anstellen, aber ich hatte mal einen unfreien (und auch unfeinen) Webspace-Provider, der Werbebanner so geschaltet hat, in dem eine Routine Stur nach dem body-Tag gesucht hat.

      Hattest Du also JavaScript-Anweisungen auf der Seite, in welchen per document.write gearbeitet wurde, wurde Stur hinter dem erst gefundenen "<body>", also hier mitten im document.write('<body>.....'); den Code für den Banner platziert.

      Workaround war den "document.write-Body" für die Routine unkenntlich zu machen, und zwar so wie Michael es gemacht hat:

      document.write('<bo' + 'dy>............');

      Patrick
      <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>

  2. HI Leute,

    ich wollte nur in einem alten Thread die Verlinkung testen.

    http://www.grassegger.at

    1. Moin,

      ich wollte nur in einem alten Thread die Verlinkung testen.
      http://www.grassegger.at

      scheint zu klappen... ;)

      Viele Gruesse,

      n.d.p.

      1. Guten Abend n.d.p,

        scheint zu klappen... ;)

        du bist wohl ein Forumsluchs? ;-p

        Du kriegst alles mit! Ich habe mir extra nen Beitrag genommen, der klein und fein ist.

        *g*

        Servus Rene Grassegger

        1. Moin auch!

          Du kriegst alles mit! Ich habe mir extra nen Beitrag genommen, der klein und fein ist.

          Ich wette, das haben noch viel mehr Leute gemerkt. ;-)  (Aber jetzt bitte nicht alle melden! *g*)

          So long

          1. Moin,

            Ich wette, das haben noch viel mehr Leute gemerkt. ;-)  (Aber jetzt bitte nicht alle melden! *g*)

            genau, ignoriert das hier lieber!

            Viele Gruesse,

            n.d.p.

            ;-)

            1. Hi!

              genau, ignoriert das hier lieber!

              das war das Stichwort. Okay! *g*

              Gruß,
              Martin