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

    Funzione pop-up importata da file esterno

    Salve, premetto che non sono pratico di javascript quindi scusatemi se vi sottopongo questioni troppo banali.
    Volevo realizzare una piccola finestrella pop-up con alcuni dati all'interno, per questo ho usato una funzione autoPopup() modificata da una delle guide di HTML.it; ho inserito la funzione modificata in un file .js esterno e lo importo prima di richiamarla nell'html di prova ma non funge. Eccovi le porzioni di codice di interesse:

    Pagina .html di prova (riporto solo le cose essenziali)
    Codice PHP:
    <script type="text/javascript" src="/postitmenu/popup.js"></script>
    [url="javascript:autoPopup()"]Post-it[/url] 
    file .js contenente la funzione autoPopup() (riporto solo le cose essenziali)

    Codice PHP:
    function autoPopup() {
        var stili = "top=10, left=10, width=400, height=250, status=no, menubar=no, toolbar=no scrollbar=no";
          var testo = window.open("", "", stili);

        testo.document.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
        
    testo.document.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n");
        
    testo.document.write("<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" xml:lang="it">\n");

        
    testo.document.write("\t<head>\n");
              
    testo.document.write("\t\t<title>Post-it</title>\n");
        
    testo.document.write("\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"css/popstyle.css\" />\n");
              
    testo.document.write("\t</head>\n");

              
    testo.document.write("\t<body>\n");
        
    testo.document.write("bla bla");
              
    testo.document.write("\t</body>\n");

              
    testo.document.write("</html>");
    }
    Cosa sbaglio?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: Funzione pop-up importata da file esterno

    ricontrolla l' escape delle stringhe che fai scrivere
    testo.document.write("<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" xml:lang="it">\n");
    qui per esempio ti sei perso i backslash di "it"

    dopo
    testo.document.write("</html>");
    aggiungi
    testo.document.close();

    specifica un nomeFinestra, anche solo _blank
    var testo = window.open("", "_blank", stili);

    accertati che non ci siano blocchi popup in locale

  3. #3

    Re: Funzione pop-up importata da file esterno

    Seguendo i tuoi consigli ho modificato il codice come segue, purtroppo però non mi funziona ancora, penso sia qualche inezia che crea il problema, ma non riesco proprio a trovarla:

    Pagina .html di prova (riporto solo le cose essenziali)
    Codice PHP:
    <script type="text/javascript" src="/postitmenu/popup.js"></script>
    [url="javascript:autoPopup()"]Post-it[/url] 
    file .js contenente la funzione autoPopup() (riporto solo le cose essenziali)

    Codice PHP:
    function autoPopup() {
        var stili = "top=10, left=10, width=400, height=250, status=no, menubar=no, toolbar=no scrollbar=no";
          var testo = window.open("", "_blank", stili);

        testo.document.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
        
    testo.document.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n");
        
    testo.document.write("<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" xml:lang=\"it\">\n");

        
    testo.document.write("\t<head>\n");
              
    testo.document.write("\t\t<title>Post-it</title>\n");
        
    testo.document.write("\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"css/popstyle.css\" />\n");
              
    testo.document.write("\t</head>\n");

              
    testo.document.write("\t<body>\n");
        
    testo.document.write("bla bla");
              
    testo.document.write("\t</body>\n");

              
    testo.document.write("</html>");
              
    testo.document.close();
    }

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    da qui e' impossibile trovarla,
    quanto hai postato a me funziona

    pubblica e lascia qui il link alla pagina online se vuoi che qualcuno ci dia un' occhiata

    ciao

  5. #5
    Ok avevi ragione funziona ^^
    Ho perso un casino di tempo e alla fine ho visto che occorreva ricaricare più volte la pagina quando modificavo il .js (lo "svuota cache" non sortiva effetto e mi ha tratto in inganno).

    Ora, il corpo del pop un è perfetto (la struttura viene stampata correttamente) solo che il CSS non viene applicato al pop-up

    Codice PHP:
    testo.document.write("\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"css/popstyle.css\" />\n"); 
    Da premettere che lo stesso CSS, usato su una paginetta di prova funziona alla perfezione. Qualcuno sa illuminarmi?

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    molto probabilmente il percorso e' sbagliato,
    considera come punto di partenza il documento e non lo script esterno
    esiste una cartella "css" (contenente a sua volta lo popstyle.css) nella stessa cartella che contiene il documento?

  7. #7
    Accidenti hai ragione ^^
    Grazie mille, sia per la pazienza sia per tutte le spiegazioni! Da buon NooB non ci avevo proprio pensato.

  8. #8
    Un'ultima cosa.... provando a visualizzare il pop-up in explorer, mi mostra la barra degli indirizzi nella finestrella. Non c'è un opzione javascript per non mostrarla? Fa perdere stile allo script.

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    no, questa e' una misura anti phishing (poter verificare l' effettivo dominio di appartenenza di un documento puo' aiutare ad individuare siti contraffatti ad arte)
    probabilmente puoi disabilitarlo in locale sulla tua macchina, ma pretendere sia cosi' con tutte non e' possibile
    ciao

  10. #10
    Capisco, su safari mi si vedeva così carino Vabbè pazienza, grazie ancora per tutte le dritte!

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.