• User

    Problema con window.opener

    Ho uno strano problema con la funzione opener :
    supponiamo che pagina1.htm apra pagina2.htm con una chiamata a window.open :

    
    <form name=FormCF>
    <input type="button" value="Pulsante" name="bottone" 
     onclick="window.open('pagina2.htm','windCF','scrollbars=no,resizable=no,width=380,height=400,status=no,location=no,toolbar=no')"
        >
    </form>
    
    

    la pagina pagina2.htm cerca di far riferimento al chiamante con il codice :

    
      document.write ( window.opener.document.FormCF.bottone.value);
    
    

    che dovrebbe stampare la scritta "Pulsante"

    Tutto funziona se pagina1.htm e pagina2.htm sono nello stesso sito.
    Se invece pagina2.htm è in un altro sito non viene stampato nulla perchè window.opener non è assegnato.

    :doppio:

    Qualche idea ?


  • Moderatore

    Credo sia a causa di restrizioni sugli script di js. Non puoi farci nulla, imho 🙂


  • User

    Si, è un problema di protezione, ma ho scoperto che si può aggirare : basta che lo script chiamante dichiari nuove proprietà nell'oggetto document ad esempio

    document.miopulsante=Form.pulsante

    In questo modo l'altro script può leggere tramite opener.document.miopulsante
    Con questo accorgimento l'esempio postato funziona.
    Il problema è che la mia situazione è ancora più complicata :mmm: :
    In realta il primo script viene generato dinamicamente da una pagina asp con un espressione del tipo

    <Script src=generascript.asp></script>

    in questo caso le cose tornano a non funzionare !!!!


  • User Newbie

    bene sono da poco immerso nel mondo javascript ma da quello che so e che ----opener vuol dire chi mi a aperto --- quindi puoi solo manipolare i dati da padre a figlio, poi se ce un'altra soluzione al momento non lo so.
    ciao