Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
435
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Moni1989 Tutorials.de Gastzugang
    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
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin Moni,

    Zitat Zitat von Moni1989 Beitrag anzeigen
    Wenn ich jetzt aber die Seite nicht refreshe, das Div einfach wieder leere
    wie leerst du denn das <div>?
     

  3. #3
    Moni1989 Tutorials.de Gastzugang
    Wird einfach wieder durch $('#testdiv').html(string); überschrieben

    glg
     

  4. #4
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.440
    Hi,

    versuch es mal über das contentWindow-Objekt:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    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
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Tatsache, der FF scheint nicht mitzbekommen, dass dort inzwischen ein neues <iframe> ist

    Wenn du das <iframe> anstatt mit dem Namen anhand seines Index ansprichst:
    Code :
    1
    
    window.frames[0]
    gehts bei mir auch im FF....ähnlich zur Lösung von Quaese
     

  6. #6
    Moni1989 Tutorials.de Gastzugang
    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...
     

  7. #7
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zitat Zitat von Moni1989 Beitrag anzeigen
    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?
     

  8. #8
    Moni1989 Tutorials.de Gastzugang
    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
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 02.08.09, 11:16
  2. document/view -> 2 views auf das document
    Von CiC im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 10.05.06, 16:44
  3. document.write() und document.close()
    Von Tucker im Forum Javascript & Ajax
    Antworten: 9
    Letzter Beitrag: 27.06.04, 18:46
  4. 'document.formular.message' ist Null oder kein Objekt - Warum ?
    Von MarcNeedsHelp im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 04.01.04, 20:25
  5. IFrame: übergeordnetes Document ansprechen
    Von mrsunshine im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 22.02.02, 14:27