Ausgabe einer Funktion in einem Frame anzeigen

Mmmh...könntest du eigentlich mal grundsätzlich erläutern, was du überhaupt machen willst?

Wenn du die src (oder wie von mir vorgeschlagen das location-Attribut) ändern willst, dann wird dort als Wert für gewöhnlich eine URL erwartet.

Der Code um per write() etwas in das Dokument im Frame zu schreiben, wäre:
Code:
window.Frame2.document.write(http_request.responseText);
...wobei Frame2 der Name des Frames ist und nicht die ID....das ist nicht dasselbe, obwohl es oft dafür gehalten wird.
 
Hallo,

Ich habe eine Seite die aus zwei Frames besteht.
Frame1 und Frame2.
Im Frame2: <Iframe name='Frames2' src='DataLoad.php'> </iframe>
wird eine Liste von Produkten angezeigt. Diese Liste wird je 4 Minuten aktualisiert.

Das PHP-Script erzeugt dynamisch und nach bestimmten Eigenschaften diese Liste.

Die Liste sieht so aus:
HTML:
<html>
<head>
<script type='text/javascript'>
<!--
var Produkte =new Array();
Produkte[0]; 
.........
Produkte[400];
//-->
</script>
<script language='JavaScript' src='Sortieren.js'></script>
</head>
<body>
<div id='Pro'>
  <table>
<script type='text/javascript'>
<!--
// Hier wird die Liste im Client sortiert: ProduktName1, ProduktName2, .... ProduktName400
document.write(Sortieren()); 
//-->
</script>
  </table>
</div>
</body>
</html>
Am Anfang war der Aufruf dieser Liste wie folgt:
HTML:
function LOAD(){
   window.Fr2.location.href = 'DataLoad.php?urPr='+Options[0];
   }
setInterval('LOAD()',240000); // je 4 Minuten

Alles funktioniert bis jetzt wunderbar.
Nun muss ich die Function LOAD() in Ajax umschreiben:
HTML:
function createXMLHttpRequest() {
    if(http_request && http_request.readyState){
      http_request.abort( );
      http_request = false;
      }

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
       http_request = new XMLHttpRequest();
       }
       else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject('Msxml2.XMLHTTP');
         } catch (e) {
            try {
                http_request = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e) {}
           }
          }

    if (!http_request) {return false;}

    http_request.open('POST', 'DataLoad.php', true);
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http_request.send('urPr='+Options[0]);

     // Callback-Funktion
    http_request.onreadystatechange = new Function('Display()');
   }

function Display(){
  if(http_request.readyState == 4){
    if(http_request.status == 200){
      window.Frame2.document.write(http_request.responseText); // <-- Hier ist mein Problem
      }
     }
    }

setInterval('createXMLHttpRequest()',240000);

Nun wie kann ich das Ergebnis des Aufrufs createXMLHttpRequest() im Frame2 anzeigen.
Mit :
HTML:
window.Frame2.document.write(http_request.responseText);
wird bei jedem Aufruf die alte Liste + die neue Liste angezeigt. Ich will aber alles neu ersetzten.

Meine Frage ist: wie kann ich die neu erzeugte Liste im Frame2 so anzeigen, dass auch das JavaScript Sortieren(); starten kann?

Vielen Dank ...

Gruß ..
 
Zuletzt bearbeitet:
Ersetze jenes:
Code:
window.Frame2.document.write(http_request.responseText);

hierdurch:
Code:
with(window.Frame2.document)
   {
     open();
     write(http_request.responseText); 
     close();
     
   }
...das ist der "korrekte" Ablauf beim Schreiben eines Dokumentes.
  • Dokument Öffnen
  • Hineinschreiben
  • Dokument schliessen(Beendigung des Schreibvorganges, tust du das nicht, wird im Folgenden Text angehängt, anstatt alles zu überschreiben)
 
jaaaaaaaaaa, jetzt klapt es.
Tausand Danke schön.
Ich danke allen hier, die mir geholfen haben.

wirklich vielen vielen Dank.
 

Neue Beiträge

Zurück