Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    309

    lo script non richiama una funzione

    buongiorno a tutti.
    ho realizzato questo semplice script che dovrebbe aprire una finestra, dove si può inserire del testo e premendo un pulsante lo converte in minuscolo.
    ma lo script non funziona.

    codice:
    <a href="#" onclick="apriFinestra()">Apri finestra con casella di testo</a>
    
    
    <script>
    function apriFinestra()
    {
    var finestra = window.open("", "Finestra di conversione", "width=400,height=200");
    finestra.document.write("<body>");
    finestra.document.write("<h3>Converti testo in minuscolo</h3>");
    finestra.document.write("<textarea id=\"testoArea\" rows=\"5\" cols=\"30\"></textarea>");
    finestra.document.write("<button onclick=\"convertiMinuscolo()\">Converti</button>");
    finestra.document.write("</body>");
    }
    
    
    function convertiMinuscolo()
    {
    var testo = document.getElementById("testoArea").value;
    var testoMinuscolo = testo.toLowerCase();
    document.getElementById("testoArea").value = testoMinuscolo;
    }
    </script>

    il problema è che la riga:

    codice:
    finestra.document.write("<button onclick=\"convertiMinuscolo()\">Converti</button>");
    non richiama la funzione: convertiMinuscolo()

    non è un problema del codice presente in quella funzione, perchè se ad esempio sostituisco l'intero codice della funzione convertiMinuscolo() con un semplice alert("ciao"); neanche funziona.

    che può essere?
    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,302
    La funzione convertiMinuscolo() è definita nella finestra "chiamante", e non in quella che vai ad aprire.

    Essendo globale, la funzione viene agganciata all'oggetto window della prima finestra, e non è ovviamente presente nell'oggetto window della seconda finestra.

    Ma a che servirebbe una simile impostazione dove uno script definisce una funzione, che potrebbe tra l'altro stare in uno script condiviso, andando ad aprire e a costruire tramite codice il contenuto e il comportamento di una seconda finestra?

    E' una soluzione enormemente complicata, scomoda e davvero poco manutenibile.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    309
    Quote Originariamente inviata da alka Visualizza il messaggio
    La funzione convertiMinuscolo() è definita nella finestra "chiamante", e non in quella che vai ad aprire.

    Essendo globale, la funzione viene agganciata all'oggetto window della prima finestra, e non è ovviamente presente nell'oggetto window della seconda finestra.

    Ma a che servirebbe una simile impostazione dove uno script definisce una funzione, che potrebbe tra l'altro stare in uno script condiviso, andando ad aprire e a costruire tramite codice il contenuto e il comportamento di una seconda finestra?

    E' una soluzione enormemente complicata, scomoda e davvero poco manutenibile.
    grazie.
    ho risolto mettendo l'intero codice in "onclick"

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 © 2024 vBulletin Solutions, Inc. All rights reserved.