Text an iframe anhängen via javascript

Aser

Erfahrenes Mitglied
tag zam,
nebensaechlich erwaehne ich, dass ich zum umfallen gegoogelt und Gebrauch von der Suchfunktion gemacht habe

will einen Chat erstellen

auf der
chatwindow.php habe ich den "chatmessageausgabeframe" und einen "versteckterframe"

der versteckte frame laedt eine php-Seite, die via javascript sich regelmaessig refresht...
sobald neue "Zeilen" vorhanden sind, sollen diese im chatmessageframe angehongen werden

mir ist es egal, ob es sich beim chatmessageausgabeframe um eine muster.txt oder sonst was handelt...
momentan handelt es sich bei der chatmessageausgabeframe um
messageausgabeframe.php (diese holt erst den text vom ganz am Anfang und gibt ihn aus, dies wird folgich nur ausgefuehrt, wenn die seite einmalig geladen wird, ... notfalls koennt ich auch darauf verzichten, u.A. falls es mithilfe einer .txt leichter faellt)

meine Plan-B waere gewesen, dass ich das ganze als Eingabefeld "tarne", da kann ich via javascript daten einfuegen...

nun die eigentliche Frage, kann ich mithilfe Javascript einer muster.txt oder muster.php einfach einen weiteren "Text" an den "Quellcode" anfuegen, ohne dass ich die Seite neu laden muss...
um Traffic zu sparen will ich, dass nur das aktuelle uebertragen wird, sonst waers ja via php n Kinderspiel

nun habe ich folgendes gefundne, bin aber nicht schlau draus geworden:

<script language='JavaScript'>
top.messageausgabeframe.clear();
top.messageausgabeframe.document.open();
top.messageausgabeframe.document.write('test');
top.messageausgabeframe.document.close();
</script>


chatwindow.php
PHP:
echo"
<table>
<tr>
   <td>
      <iframe name='messageausgabeframe' src='./chatmessageausgabe.php?nic=$nic&zz=$zz&chatsessionid=$chatsessionid' width='100%' height='100%' >
      Dein Browser unterstuetzt Inlineframes nicht
	  oder zeigt sie in der derzeitigen Konfiguration nicht an.
	  </iframe>
   </td>
   <td>
      <iframe name='teilnehmerframe' src='./chatteilnehmer.php?nic=$nic&zz=$zz&chatsessionid=$chatsessionid' width='100%' height='100%' >
      Dein Browser unterstuetzt Inlineframes nicht
	  oder zeigt sie in der derzeitigen Konfiguration nicht an.
	  </iframe>
   </td>
</tr>
<tr>";
#    <td>
#	  <iframe name='versteckterframe' src='./chatversteckterframe.php?nic=$nic&zz=$zz&chatsessionid=$chatsessionid' width='100%' height='100%' >
echo"

<tr>
<td colspan='2'>
    <form method='POST' action='./chatmessageabschicken.php?nic=$nic&zz=$zz&chatsessionid=$chatsessionid'>
      <textarea rows='2' name='feldchatmessage' cols='50'></textarea><br>
      SMILEYS<input type='submit' value='SEND' name='B1'>
    </form>
</td>
</tr>
</table>";




echo" <iframe name='versteckterframe' src='./chatversteckterframe.php?nic=$nic&zz=$zz&chatsessionid=$chatsessionid' width='500' height='100' >
      Dein Browser unterstuetzt Inlineframes nicht
	  oder zeigt sie in der derzeitigen Konfiguration nicht an.
	  </iframe>";



versteckterframe.php
PHP:
include "./admin/mysqldaten.php";# braucht man des noch?
                                                                                     #AND message<>''
$chatmessageausgabetabelle = mysql_query("SELECT * FROM chatsessions WHERE chatsessionid='$chatsessionid' AND message<>'' AND timestamp>'$timestampderletztenmessage' ORDER BY `timestamp` ASC");

$ausgabemessagenr='0';
while($message!='' or $ausgabemessagenr=='0')
{
$message = @mysql_result($chatmessageausgabetabelle, "$ausgabemessagenr", "message");
   if($message!='')
   {
   $absender = @mysql_result($chatmessageausgabetabelle, "$ausgabemessagenr", "usernic");
   $timestampdermessage = @mysql_result($chatmessageausgabetabelle, "$ausgabemessagenr", "timestamp");
   #echo $absender.":".$message."<br>";
   $timestampderletztenmessage=$timestampdermessage;

   $neuerdatensatz=$neuerdatensatz."$absender : $message <br>";
   }
$ausgabemessagenr++;
}

#refresh-hierrrrrrrr
echo"<meta http-equiv='refresh' content='15'; URL='./chatversteckterframe.php?nic=$nic&zz=$zz&chatsessionid=$chatsessionid&timestampderletztenmessage=$timestampderletztenmessage'>  "; #Intervall-ABFRAGE muss noch rein



#if($timestampderletzenmessage!='')
#{
echo "<script language='JavaScript'>
       top.messageausgabeframe.clear();
       top.messageausgabeframe.document.open();
	   top.messageausgabeframe.document.write('neww: $neuerdatensatz');
       top.messageausgabeframe.document.close();
       </script>";
#}




ich bin wirklich am verzweifeln...
dann mal vielen Dank im Voraus
 
naja...
hab selbst ne Alternative gefunden

kommt in den Mainframe
PHP:
<div id='divid'>erster.inhalt</div>


und der <iframe> laedt eine Setie, die dies beinhaltet:
PHP:
echo "
<script language='JavaScript'>

parent.document.getElementById('divid').innerHTML=parent.document.getElementById('divid').innerHTML+'neuercontent';
       </script>";


//edit 1

ok, jetzt habe ich ein anderes Problem

dies geht:(hier wird alle 15sec die Zeile mit "Neuer Sprung" erweitert...)
PHP:
echo "
<script language='JavaScript'>

parent.messageausgabeframe.document.getElementById('divid').innerHTML=parent.messageausgabeframe.document.getElementById('divid').innerHTML+'neuer Sprung---<br>';
       </script>";


dies NICHT (hier wird nix erweitert...)
PHP:
echo "
<script language='JavaScript'>

parent.messageausgabeframe.document.getElementById('divid').innerHTML=parent.messageausgabeframe.document.getElementById('divid').innerHTML+'neuer Sprung---<br>".$neuerdatensatz."--';
       </script>";


//edit 2

aeh...
ok, ich glaube den Feher zu haben

im $neuerdaensatz befinden sich herkoemmliche Anfuehrungszeichen, bzw >\"<, diese wiederum wandeln sich zu frueh in herkoemmliche Anfuehrungszeichen um
 

Neue Beiträge

Zurück