# xyz ist Null oder kein Objekt



## Tim C. (24. September 2003)

Ich bekomm hier echt 'nen Krampf. Stein des Anstoßes ist laut Internet Explorer die folgende Zeile 

```
iView.document.body.innerHTML = sourceCode;
```
Er zeigt den Fehler, wie schon aus dem Betreffe zu erahnen, "iView.document.body ist Null oder kein Objekt" an. Fakt ist, ich versteh die Welt nicht mehr, weil wenn ich diese Datei so nutzen, wie es eigentlich gedacht ist, nämlich als include. Bekomme ich zwar 3-7 andere JS Fehler, aber diesen nicht mehr.
Wer noch wissen will, wie die Variable sourceCode definiert ist, der gucke hier:

```
var sourceCode = '<?php if(is_array($row)) { echo $row['content']; } else { echo "-"; }?>';
```
Es steht auch genau das nachher im Quelltext, was die Variable sourceCode sein soll aber irgendwie spuckt er halt den Fehler aus.

Vielleicht kann mir hier endlich geholfen werden, wenn das Problem aus der Welt ist, folgt direkt das nächste, es sei denn das löst sich damit auch, aber erstmal klein anfangen.


----------



## Fabian H (24. September 2003)

Die Zeile hier:


```
var sourceCode = '<?php if(is_array($row)) { echo $row['content']; } else { echo "-"; }?>';
```
 erzeugt einen Fehler, weil du mittem im String ' verwendest. Besser:

```
var sourceCode = "<?php if(is_array($row)) { echo $row['content']; } else { echo \"-\"; }?>";
```

Das document-Objekt hat die innerHTML Methode AFAIK nicht, dh. du musst den Body per ID ansprechen.
Wo kommt iView her?
Das Objekt eines mit window.open geöffneten Fensters?


----------



## Tim C. (24. September 2003)

Nein iView ist ein iframe, welches ich als Editor verwende. Du erinnerst dich vielleicht ? Das WYSIWYG Online Editor "Problem" aus dem HTML Forum 

Danke das mit dem " statt ' werde ich gleich morgen testen.


----------



## Andreas Gaisbauer (24. September 2003)

Hallo Tim, 

ich hab was gefunden 


> Die Eigenschaft innerHTML sollten Sie nicht direkt beim Einlesen der HTML-Datei anwenden, sondern immer erst abhängig von Aktionen wie Verweisklicks oder Buttonklicks oder mit einem  setTimeout() von einigen Sekunden davor. Bei Anwendung direkt beim Einlesen der Datei meldet der MS Internet Explorer 4.0 einen Laufzeitfehler.


Quelle: Selfhtml 

Also hab ich die init-Funktion mal geändert...

```
var sourceCode = 'trallala';
  function Init(){
    iView.document.designMode = 'On';
    window.setTimeout("iView.document.body.innerHTML = sourceCode",1000);
  }
```

und siehe da - es geht ohne Fehlermeldung 

ciao Andreas


----------



## Tim C. (24. September 2003)

Was wär ich blos ohne Andreas  Es geht und der Content wird sogar sofort in die Box geladen. *freu*


----------



## Tim C. (25. September 2003)

So nun ist das "einzige" Problem was ich noch habe, dass wenn der Sourcecode, den ich einlade, ein Tabellenkonstrukt enthält, ich folgende Fehlermeldungen bekomme:

```
1)
Zeile: 201 (ok das bringt euch wenig)
Fehler: Objekt erwartet

2)
Zeile: 201
Fehler: Objekt erwartet

3)
Zeile: 185
Fehler: Objekt erwartet

4)
Zeile:  39
Fehler: Nicht abgeschlossene Zeichenfolgenkonstante
```
Das Problem ist, durch mehrfachen include, weiss ich nicht genau, wie ich die Zeilen zählen soll.

Ja Tatsache, der Fehler in Zeile 201 tritt zweimal auf, sogar  beide male in Zeichen: 1.

Achja vielleicht hilft es weiter, wenn die Tabelle im Source steht, wird dieser überhaupt nicht mehr in die Box geladen, sondern wird unter dieser dargestellt.


----------



## Sven Mintel (25. September 2003)

Wie sieht der Sourcecode denn aus....
werden alle Sonderzeichen(Anführungszeichen,spitze Klammern) in htmlentities umgewandelt,und einfache Anführungszeichen escaped?


----------



## Andreas Gaisbauer (25. September 2003)

Hallo,

ich denke auch das durch den Source aus der DB irgendein String nicht geschlossen ist und dadurch ein fehler auftritt. Lass dir den Sourcescode mit Tabelle mal via Alert ausgeben, bevor du ihn in den Iframe Schreiben lässt - vielleicht siehst da was.. Ansonsten kommt man ohne aktuellen Sourcecode mit den Fehlermeldungen nicht wirklich weiter 

bye


----------

