Hola que tal
papino, esque aún no me he dado a entender bien pero ya lo he probado y funciona
ok!, así funciona:
1. La página principal contiene una variable que guarda el valor de la variable del iframe y se hace la petición con AJAX
2. El iframe se recarga y hace una comparación, si la variable de la ventana principal es distinta al la del iframe se hace la petición, pero en éste caso no hace hace por que la variable es la mísma.
3. El usuario envía un mensaje.
4. Se modifica el valor de la variable del archivo del iframe.
5. Al actualizarse el iframe, se da cuenta que la variable es diferente a la anterior entonces se procede a hacer la petición a
"todos los usuarios" y entonces se guarda el nuevo valor para evitar que se vuelva a hacer la petición hasta que haya un nuevo mensaje.
Pondré un ejemplo con código para explicarlo un poco mejor.
Página principal:
Código HTML:
Ver originalvar id_peticion=12;
function actualizarMensaje(){
//ETC. ETC
document.getElementById("mensaje") = responseText; //es el resultado de la peticion
}
<form action="cambiarMensaje.php"> <input type="text" name="nuevo_mensaje" value="Cambiar mensaje" /><input type="submit" /> <iframe src="actualizador.html" style="display:none"></iframe>
actualizador.html
Código HTML:
Ver original<meta http-equiv="refresh" content="1" /> var id_peticion=1231;//Cualquier valor distinto al de la ventana principal
var id_peticion_top=window.top.id_peticion;
if(id_peticion!=id_peticion_top){
window.top.id_peticion=id_peticion;
window.top.actualizarMensaje();
}
cambiarMensaje.php
Código php:
Ver original<?php
/*
Código para insertar el mensaje enviado...
*/
//Se cambia el valor de la variable del archivo "actualizador.php"
//Leemos el archivo del iframe
define( "N", "actualizador.html");
//Editamos la variable "id_consulta"
//Guardamos los cambios
?>
Creo que con esto queda mejor explicado, aunque no puse el código faltante ya que eso es lo de menos pues es lo de siempre. Como mencioné, ya lo probé usando difentes sesiones con varios navegadores y todo funciona
ok, Saludos.