iframe.document is null

  • Themenstarter Themenstarter Moni1989
  • Beginndatum Beginndatum
M

Moni1989

Hallo!

Ich habe ein Problem, das ich selbst nicht lösen kann.

Ich habe einen String der HTMLCode (ein IFRAME) enthält.

Einem Div auf der Seite weise ich den HTML-Code zu. Funktioniert.
Dann sage ich testframe.document.write("hallo"); gleich nach der Zuweisung.

Alles super.

<script>string = '<iframe frameborder="0" scrolling="no" src="about:blank" name="testframe" id="testframe" width="370" height="450"></iframe>'
$('#testdiv').html(string);
testframe.document.write("hallo");</script>


Wenn ich jetzt aber die Seite nicht refreshe, das Div einfach wieder leere und dann das ganze nochmal von vorne mache schmeißt mir Firebug die Meldung testframe.document is null

Internet explorer klappt, nur Firefox kann ab dem zweiten Aufruf nicht mehr weiter.

Weiß jemand von euch woran das liegen könnte? Ich bin am verzweifeln.

Timeouts habe ich schon probiert.
Den Inhalt des Divs habe ich ausgelesen nach dem Befüllen und er ergibt bei allen Aufrufen dasselbe und dennoch wirft er mir ab dem zweiten Mal immer den Fehler.

Mfg
Monika
 
Wird einfach wieder durch $('#testdiv').html(string); überschrieben

glg
 
Hi,

versuch es mal über das contentWindow-Objekt:
Code:
function changeFrame(){
  string = '<iframe frameborder="0" scrolling="no" src="about:blank" name="testframe" id="testframe" width="370" height="450"></iframe>'
  $('#testdiv').html(string);

  $('#testdiv iframe').get(0).contentWindow.document.open();
  $('#testdiv iframe').get(0).contentWindow.document.write("hallo");
  $('#testdiv iframe').get(0).contentWindow.document.close();
}

Ciao
Quaese
 
Tatsache, der FF scheint nicht mitzbekommen, dass dort inzwischen ein neues <iframe> ist:eek:

Wenn du das <iframe> anstatt mit dem Namen anhand seines Index ansprichst:
Code:
window.frames[0]
gehts bei mir auch im FF....ähnlich zur Lösung von Quaese
 
Ja, das funktioniert. Auch alles Jquery Methoden würden klappen.
Das Problem isti nur, dass ich die variable string (in der auch testframe.document.write(...) steht) von einer anderen Webseite zurückgeliefert bekomme.
Auf diese Sachen habe ich leider keinen Einfluss.
Das Problem liegt wohl darin, dass die ID des iframes zweimal vergeben wird...
Ich glaube dann muss ich wohl die Seite refreshen, wenn der User den Vorgang abbricht und ich das div neu befüllen müsste... Dann würde es klappen, aber es ist leider unschön für den User...

Aber is doch immer wieder schön wenn man nen Firefox Bug findet, oder?

Und noch besser war es damals, als PHP an einer Stelle in meinem Code das nicht verstanden hat.

$var1 = false;

$var2 = 'hallo';

$var1 = true;
if($var1)
{
echo "here";
}

Er isti einfach nie in das if reingegangen... Sehr lustig wenn man solche Bugs findet...
 
Moni1989 hat gesagt.:
Und noch besser war es damals, als PHP an einer Stelle in meinem Code das nicht verstanden hat.

$var1 = false;

$var2 = 'hallo';

$var1 = true;
if($var1)
{
echo "here";
}

Er isti einfach nie in das if reingegangen... Sehr lustig wenn man solche Bugs findet...

Hmmm, das mag ich garnicht glauben , hast du mehr Details dazu?:-)
 
KP konnte ich auch ned. War irgendwo an einer Stelle in ner datei mit ca. 10.000 zeilen.
Die zeilen

$var1 = true;

und

if($var1)

standen direkt untereinander.
Ich hab stundenlang alles ausprobiert. An jeder anderen Stelle im Code funktionierte es.

gelöst haben wir es dann so...

$var1 = mysql_fetch_value(mysql_query("SELECT 1"));
if($var1)
{
...
}

Auf einmal is er rein gegangen... Hat vorher auch nicht funktioniert wenn man $var1 den Wert 1 oder "test" zugewiesen hat... Nur sql hat geklickt...
Keiner hier wusste warum

glg
 

Neue Beiträge

Zurück