Visualizzazione risultati 1 fino 8 di 8

Discussione: invio stringa tramite link da pop up a madre

  1. #1
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Exclamation invio stringa tramite link da pop up a madre

    Salve a tutti!
    Vorrei inviare delle stringhe tramite link da pop up alla madre.
    Ho buttato giù un po di codice:

    pagina madre

    Codice HTML:
    <html>
    <body >
    <div align="center">
    <form method="post" name="madre">
    
    <textarea type="text" id="campo" name="campo" rows="7" cols="40">Ciao </textarea>
    
    <input type="button" value="popup" onClick="window.open('popup.htm','popup','width=300,height=100,toolbar=false,scrollbars=false');">
    
    </form>
    </body>
    
    </html>
    pagina pop up

    Codice HTML:
    <html>
    <head>
    <script language="javascript">
    
    function val(){
     window.opener.document.forms['madre'].reset();   //resetta il campo che riceve la stringa
     window.opener.document.forms['madre'].campo.value = document.links[0].value;
     self.close()
    }
    </script>
    
    </head>
    <body>
    <div align="center">
    
    <a href="" onClick="val();" value="xxxx" >bla bla</a>
    
    </form>
    </div>
    </body>
    </html>

    In pratica non mi accede al campo della pagina madre da quanto ho capito.

    EDIT:
    Sarebbe la stessa funzione del forum quando si aggiungono emoticons da pop up

    Faccine->[Altro]

    cliccando sull'immagine dell'emoticons che contiene un link manda del testo qui nella text area.
    Ultima modifica di giacomofabbian : 16-11-2011 alle ore 17.09.32 Motivo: aggiunta dettagli

  2. #2
    Guest

    Predefinito

    Il problema è l'attributo al quale tenti di accedere.
    Nel momento in cui lo richiami fai credere a JavaScript che quello che si trova davanti è un elemento input o comunque di modulo che possiede una proprietà value.

    Ti basta sostituirla ad esempio con rel="xxxx" nell'anchor e nello script "links[0].rel".


    Fammi sapere come ti va ;-)

  3. #3
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Non va ancora sec me il problema è un altro perchè non funziona neanche facendo così:
    Codice:
    var a='ciao';
    
    
     window.opener.document.madre.campo.value = a;


    EDIT:
    Dimenticavo non lo resetta nemmeno il campo, pensavo fosse un problema generale di esecuzione dello script ma scrivendo un alert qualsiasi lo esegue quindi il problema deve essere proprio nelle 2 istruzioni, nel riferimento più specificatamente.
    Ultima modifica di giacomofabbian : 17-11-2011 alle ore 22.32.01

  4. #4
    Guest

    Predefinito

    Ho fatto qualche prova e nonostante l'applicazione del suggerimento iniziale abbia dato esito risolutivo al problema, ho pensato che magari il modo antiquato di identificare un elemento in js in quel modo possa essere esso stesso elemento di problemi per qualche browser ultra moderno.

    Di conseguenza, ho apportato qualche modifica al tuo script per "ammodernarlo" e l'ho testato in locale con successo su FF 8.0, IE 8.0 ( e compatibility view ), Chrome 15, Opera 11.52, Safari 5.1.


    Di seguito i sorgenti:

    Pagina Madre
    Codice HTML:
    <html>
    <body>
    
    <div align="center">
        <form method="post" id="madre">
            
            <textarea type="text" id="campo" name="campo" rows="7" cols="40">Ciao </textarea>        
            <input type="button" value="popup" onClick="window.open('popup.htm','popup','width=300,height=100,toolbar=false,scrollbars=false');">
        
        </form>
    </div>
    
    </body>
    </html>

    Pagina Popup
    Codice HTML:
    <html>
    <body>
    <div align="center">
    	<a href="#" onClick="val();" rel="xxxx" >bla bla</a>
    </div>
    
    
    <script type="text/javascript">
    
    function main_win(id){
    	return window.opener.document.getElementById(id);	
    }
    
    function val()
    {
     	main_win('madre').reset();
     	main_win('campo').value = document.links[0].rel;
     	self.close()
    }
    
    </script>
    </body>
    </html>


    ps: ti suggerisco di adottare una DTD nei tuoi documenti html, esse servono a definire lo standard con cui è scritto il markup presente nella pagina ed è spesso risolutiva nella maggior parte dei problemi di incompatibilità del documento da parte di più browser ( anche se IE rimane sempre fuori strada ).

  5. #5
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Citazione Originalmente inviato da blackbos Visualizza messaggio
    Ho fatto qualche prova e nonostante l'applicazione del suggerimento iniziale abbia dato esito risolutivo al problema, ho pensato che magari il modo antiquato di identificare un elemento in js in quel modo possa essere esso stesso elemento di problemi per qualche browser ultra moderno.

    Di conseguenza, ho apportato qualche modifica al tuo script per "ammodernarlo" e l'ho testato in locale con successo su FF 8.0, IE 8.0 ( e compatibility view ), Chrome 15, Opera 11.52, Safari 5.1.


    Di seguito i sorgenti:

    Pagina Madre
    Codice HTML:
    <html>
    <body>
    
    <div align="center">
        <form method="post" id="madre">
            
            <textarea type="text" id="campo" name="campo" rows="7" cols="40">Ciao </textarea>        
            <input type="button" value="popup" onClick="window.open('popup.htm','popup','width=300,height=100,toolbar=false,scrollbars=false');">
        
        </form>
    </div>
    
    </body>
    </html>

    Pagina Popup
    Codice HTML:
    <html>
    <body>
    <div align="center">
    	<a href="#" onClick="val();" rel="xxxx" >bla bla</a>
    </div>
    
    
    <script type="text/javascript">
    
    function main_win(id){
    	return window.opener.document.getElementById(id);	
    }
    
    function val()
    {
     	main_win('madre').reset();
     	main_win('campo').value = document.links[0].rel;
     	self.close()
    }
    
    </script>
    </body>
    </html>


    ps: ti suggerisco di adottare una DTD nei tuoi documenti html, esse servono a definire lo standard con cui è scritto il markup presente nella pagina ed è spesso risolutiva nella maggior parte dei problemi di incompatibilità del documento da parte di più browser ( anche se IE rimane sempre fuori strada ).
    Grazie mille mi ero accorto anch'io di questo problema stavo testando su Crome

    Ultima cosa cos'è questa DTD???

  6. #6
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Citazione Originalmente inviato da blackbos Visualizza messaggio
    Ho fatto qualche prova e nonostante l'applicazione del suggerimento iniziale abbia dato esito risolutivo al problema, ho pensato che magari il modo antiquato di identificare un elemento in js in quel modo possa essere esso stesso elemento di problemi per qualche browser ultra moderno.

    Di conseguenza, ho apportato qualche modifica al tuo script per "ammodernarlo" e l'ho testato in locale con successo su FF 8.0, IE 8.0 ( e compatibility view ), Chrome 15, Opera 11.52, Safari 5.1.


    Di seguito i sorgenti:

    Pagina Madre
    Codice HTML:
    <html>
    <body>
    
    <div align="center">
        <form method="post" id="madre">
            
            <textarea type="text" id="campo" name="campo" rows="7" cols="40">Ciao </textarea>        
            <input type="button" value="popup" onClick="window.open('popup.htm','popup','width=300,height=100,toolbar=false,scrollbars=false');">
        
        </form>
    </div>
    
    </body>
    </html>

    Pagina Popup
    Codice HTML:
    <html>
    <body>
    <div align="center">
    	<a href="#" onClick="val();" rel="xxxx" >bla bla</a>
    </div>
    
    
    <script type="text/javascript">
    
    function main_win(id){
    	return window.opener.document.getElementById(id);	
    }
    
    function val()
    {
     	main_win('madre').reset();
     	main_win('campo').value = document.links[0].rel;
     	self.close()
    }
    
    </script>
    </body>
    </html>


    ps: ti suggerisco di adottare una DTD nei tuoi documenti html, esse servono a definire lo standard con cui è scritto il markup presente nella pagina ed è spesso risolutiva nella maggior parte dei problemi di incompatibilità del documento da parte di più browser ( anche se IE rimane sempre fuori strada ).
    Grazie mille mi ero accorto anch'io di questo problema stavo testando su Crome

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da giacomofabbian Visualizza messaggio
    Ultima cosa cos'è questa DTD???
    La DTD, aka Document Type Definition, è sostanzialmente uno strumento che permette una validazione del tuo codice in quanto definisce uno standard di regole a cui attenersi nella scrittura del markup.

    Se ad esempio dichiaro tramite DTD che il mio documento è scritto in XHTML 1.0, dovrò aver premura di rispettare la sintassi del linguaggio ( che a dispetto di HTML 4.1/5 richiede la chiusura abbreviata degli elementi a tag unico: <img .. />, <br /> e così via ).

    Di seguito ti lascio qualche link informativo:

    Wikipedia
    http://it.wikipedia.org/wiki/Document_Type_Definition

    Elenco delle DTD raccomandate dal W3C
    http://www.w3.org/QA/2002/04/valid-dtd-list.html


    Se ad esempio scegli la DTD HTML 4.1 Transitional, devi far riferimento alle regole di scrittura per quel markup, che puoi trovare comodamente esplicate in un documento ufficiale della W3C presente online:
    http://www.w3.org/TR/html401/


    In ultimo, esiste uno strumento online che ti permette di verificare se il codice di markup da te prodotto risulta valido/compatibile con lo standard da te adoperato: http://validator.w3.org/ (ti consiglio giusto di non seguirlo con fede religiosa, chiaro che una decina di errori sono preferibili a trecento).
    Ultima modifica di blackbos : 23-11-2011 alle ore 12.16.50

  8. #8
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Citazione Originalmente inviato da blackbos Visualizza messaggio
    La DTD, aka Document Type Definition, è sostanzialmente uno strumento che permette una validazione del tuo codice in quanto definisce uno standard di regole a cui attenersi nella scrittura del markup.

    Se ad esempio dichiaro tramite DTD che il mio documento è scritto in XHTML 1.0, dovrò aver premura di rispettare la sintassi del linguaggio ( che a dispetto di HTML 4.1/5 richiede la chiusura abbreviata degli elementi a tag unico: <img .. />, <br /> e così via ).

    Di seguito ti lascio qualche link informativo:

    Wikipedia
    http://it.wikipedia.org/wiki/Document_Type_Definition

    Elenco delle DTD raccomandate dal W3C
    http://www.w3.org/QA/2002/04/valid-dtd-list.html


    Se ad esempio scegli la DTD HTML 4.1 Transitional, devi far riferimento alle regole di scrittura per quel markup, che puoi trovare comodamente esplicate in un documento ufficiale della W3C presente online:
    http://www.w3.org/TR/html401/


    In ultimo, esiste uno strumento online che ti permette di verificare se il codice di markup da te prodotto risulta valido/compatibile con lo standard da te adoperato: http://validator.w3.org/ (ti consiglio giusto di non seguirlo con fede religiosa, chiaro che una decina di errori sono preferibili a trecento).
    Perfetto grazie allora avevo intuito giusto

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •