[html][JS] Formulaire de chat avec iframe

Formulaire de chat avec iframe [html][JS] - HTML/CSS - Programmation

Marsh Posté le 31-07-2004 à 09:49:59    

Bonjour, j'ai sur ma page un petit formulaire très simple:
 

Code :
  1. <form name="chat" id="chat" onSubmit=" EnvoiMessage( document.chat.messagechat.value ) ">
  2. <input type="text" size="55" name="messagechat" id="messagechat">
  3. </form>


 
et une iframe qui contient les messages du chat:
 

Code :
  1. <iframe name="ChatChamp" id="ChatChamp" src="chat.php" align="center" height="50" width="288" frameborder="0" marginwidth="0" marginheight="10" scrolling="auto" "noresize" allowtransparency="true">
  2. </iframe>


 
enfin ma fonction JS:
 

Code :
  1. function EnvoiMessage( message )
  2. {
  3. document.chat.messagechat.value = '';
  4. document.chat.messagechat.focus();
  5. ChatChamp.location = 'chat.php?message=' + message + '#finpage';
  6. }


 
quand on appuie sur 'Entrée', le meesage dans le input s'efface bien, le focus est là aussi, mais c'est la page entière qui se reloade et pas seulement l'iframe!!
 
Est-ce que c'est ma fonction JS qui n'est pas bonne ou est-ce que c'est normal puisque c'est l'envoi du formulaire, dans ce cas comment éviter le reload de la page entière ?
 
Merci.

Reply

Marsh Posté le 31-07-2004 à 09:49:59   

Reply

Marsh Posté le 31-07-2004 à 09:55:42    

cest l attrribut src d l'iframe que tu dois modifier, pas la location

Reply

Marsh Posté le 31-07-2004 à 10:09:19    

non marche toujours pas ....

Reply

Marsh Posté le 31-07-2004 à 10:27:47    

ça y est j'ai trouvé, il faut rajouter target dans la balise du form:
 
<form name="chat" target="ChatChamp" action="chat.php" method="post" onSubmit="EnvoiMessage( )">
 
 
Mais maintenant j'ai un autre problème, puisque c'est un chat je reloade l'iframe toutes les x secondes ( onLoad="window.location.reload()" ), mais commme c'est le résultat d'un formulaire, il m'affiche une erreur.
J'ai essayé de changé le window.location.reload() par window.location = 'chat.php', mais çà ne marche pas...

Reply

Marsh Posté le 31-07-2004 à 10:30:51    

bon apparemment çà marche avec window.location.replace( 'chat.php' ).

Reply

Marsh Posté le 31-07-2004 à 13:53:35    

Pour que la page aille directement en fin de page lorsqu'elle est chargée, j'ai mis un anchor en fin de page, ( <a name"finpage">.</a> ), mais çà marche plus çà window.location.replace( 'chat.php#finpage' ) du coup ...
 
comment puis-je faire ?

Reply

Marsh Posté le 31-07-2004 à 13:57:52    

name="finpage"

Reply

Marsh Posté le 31-07-2004 à 14:49:09    

oui scuse j'ai bien mis <a name="finpage" id="finpage">.</a>

Reply

Marsh Posté le 31-07-2004 à 15:10:18    

bon voilà ce que j'ai dans mon chat.php:

Code :
  1. <body onLoad="setTimeout( 'window.location.replace( \'chat.php?#finpage\', '5000' );">


 
et mon ancre:

Code :
  1. <a name="finpage" id="finpage">.</a>


 
Le truc c'est que le refresh ne se fait qu'une seule fois !
 
Pourquoi le setTimeout ne se fait pas à chaque fois ?


Message édité par goldorak69 le 31-07-2004 à 15:10:56
Reply

Marsh Posté le 31-07-2004 à 15:18:37    

si je mets ceci, çà fonctionne ( en enlevant l'ancre dans le setTimeout ):

Code :
  1. <body onLoad="setTimeout( 'window.location.replace( \'chat.php\', '5000' );">

Reply

Marsh Posté le 31-07-2004 à 15:18:37   

Reply

Marsh Posté le 31-07-2004 à 15:38:15    

finalement j'ai enlevé le setTimeout et j'ai mis un meta refresh et çà marche...

Reply

Marsh Posté le 31-07-2004 à 15:57:37    

Bon en fait çà ne marche que sous mozilla çà, et pas sous I.E:
 

Code :
  1. <META HTTP-EQUIV="refresh" CONTENT="10; url=chat.php#finpage">

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed