Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Lanciare funzione della finestra madre

    Ciao,
    ho due pagine, madre e figlia.
    La pagina madre apre un pop, che è la pagina figlia, dopodiché la pagina figlia dovrebbe chiamare una funzione della pagina madre.

    Questa è la pagina madre:

    codice:
    <html>
    <head>
    <script language="javascript" type="text/javascript">
    <!--
    function ciao() {
    	alert(document.getElementById('uno').innerHTML);
    }
    function pop() {
    	window.open('figlia.htm', 'pop', 'toolbar=no, menubar=no, scrollbars=yes, resizable=yes, width=300, height=400');
    }
    //-->
    </script>
    </head>
    <body>
    <div id="uno">Io sono l'inner HTML!!!</div>
    funzione ciao
    
    funzione pop 
    </body>
    </html>
    E questa è la pagina figlia:

    codice:
    <html>
    <head>
    
    <script language="javascript" type="text/javascript">
    <!--
    function ciao_madre() {
    	opener.window.document.ciao();
    }
    //-->
    </script>
    </head>
    <body>
    funzione nella finestra madre
    
    </body>
    </html>
    Ma opener.window.document.ciao() non riesce a lanciare la funzione.
    Javascript console: "opener.window.document.ciao is not a function."
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  2. #2
    Fatto, serviva l'oggetto window da solo per accedere alla pagina madre, non window.document

    Pardon!


    codice:
    <html>
    <head>
    <script language="javascript" type="text/javascript">
    <!--
    function ciao_madre() {
    	opener.window.ciao();
    }
    //-->
    </script>
    </head>
    <body>
    funzione nella finestra madre
    </body>
    </html>
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  3. #3
    Perfeziono il banale esempio con un aggiustamento di usabilità che andrebbe considerato in ogni applicazione che usa finestre differenti:

    codice:
    <script language="javascript" type="text/javascript">
    <!--
    function ciao() {
    	alert(document.getElementById('uno').innerHTML);
    }
    function pop() {
    	// identificativo pop_id del pop:
    	var pop_id = window.open('figlia.htm', 'pop', 'toolbar=no, menubar=no, scrollbars=yes, resizable=yes, width=300, height=400');
    	// per buona educazione ripristino il focus sul pop aperto: 
    	pop_id.focus();
    }
    //-->
    </script>
    È una buona norma di usabilità ripristinare il focus sul pop aperto, perché nel caso in cui questo sia già aperto, l'utente non vedrebbe alcun effetto del suo click sul link.
    Nello script della pagina figlia questo non è necessario perché l'istruzione alert() riporta automaticamente il fuoco sulla pagina che lo lancia.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.