Ho risolto così, definendo le seguenti funzioni nei due applicativi
Applicativo chiamante
<script language='javascript'>
//chiamata al click di un button
function test()
{
var win = document.getElementById('iframe').contentWindow;
if (win == null || !window['postMessage'])
alert("windows error");
else
win.postMessage("hello", "*");
}
// funzione di callback
function receiveMessage(evt) {
document.getElementById("j_id_1v:j_id_1z").style.width='200px';
}
//evento in ascolto che viene registrato all’onload della pagina
if (!window['postMessage'])
alert("oh crap");
else {
if (window.addEventListener) {
window.addEventListener("message", receiveMessage, false);
}
}
</script>
Applicativo chiamato
<script language='javascript'>
//funzione che riceve il messaggio inviato
function receiveMessage(evt) {
var ta = document.getElementById("CBNonAttivoImg_selReparto");
if(ta == null)
alert(“windows error”);
else
document.getElementById("CBNonAttivoImg_selReparto").click();
callback();
}
//evento in ascolto che viene registrato all’onload della pagina
if (!window['postMessage'])
alert("oh crap");
else {
if (window.addEventListener) {
window.addEventListener("message", receiveMessage, false);
}
}
//funzione di callback da chiamare per effettuare una chiamata al chiamante
function callback()
{
var win = window.parent ;
if (win == null || !window['postMessage'])
alert("windows error ");
else
win.postMessage("hello", "*");
}
</script>