Solució envia missatge
De wikiserver
Solució de la primera part de l'exercici. Una finestra que envia un missatge a una altre. L'altre finestra agafa el missatge i l'escriu.
Codi amb el HTML :
<html>
<head>
<script type="text/javascript" src="missatges.js"></script>
<style type="text/css">
html
{
font-family: "courier new";
}
</style>
</head>
<body >
Finestra Principal. PAs de missatges
<button onClick="openWindow();">obrir finestra</button>
<button onClick="sendMessage();">enviarMissatge</button>
<div id="resposta"></div>
</body>
</html>
Codi amb el Javascript (fitxer anoment missatges.js)::
var win;
function openWindow(){
// es crea la finestra
win = window.open('', 'exemple', 'width=300,height=300');
//es crea un element div amb informació dintre
var div2 = win.document.createElement('div');
div2.setAttribute('id', 'mess');
div2.innerHTML="Hola a Totos";
div2.style.fontSize = '15px';
win.document.body.insertBefore(div2, win.document.body.firstChild ); //també es pot sustituir per: win.document.body.appendChild(div2);
//s'associa una funció, anomenada listener' que escolta si algú l'ha enviat informació'
win.addEventListener("message", listener, false);
//es defineix la funció anomenada listener:
function listener(event){
//modifica el div creat pel contingut enviat pel usuari de l'altre pàgina.'
win.document.getElementById("mess").innerHTML = "rebut: "+ event.data;
}
}
function sendMessage(){
var text = prompt("Envia un text a la finestra que s'ha obert");
try{
//enviem un missatge a la finestra win sense importar l'origen, per aixó possem '*'
win.postMessage(text, "*");
}
catch(e)
{
alert(e);
}
}