Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    62

    problema editor con Firefox

    Salve,
    posto qui perchè credo si tratti di un problema di Javascript, o al massimo di configurazione di browser . Però se ritenete che sia da spostare in php, fate pure. Grazie
    Arrivo al punto , sto provando uno script che ho trovato qui nel sito , precisamente: questo
    http://www.html.it/articoli/2269/esempio10.htm

    Ecco il codice:

    Codice PHP:
    <script type="text/javascript" language="javascript" src="editor/editor.js">
                            
    </script>                                  
                                    <body onload="load();">
                                        <div id="formArticoli">
                                        <form action="getTextPage.php" method="POST" id="formEditArea" onsubmit="pulisciCodice();">
                                            <input type="hidden" name="codicePulito"/>
                                            <iframe src="" id="editArea" name="editArea" width="300" frameborder="0"></iframe>

                                            <div id="pulsantiera">
                                            [url="javascript:void();"][img]editor/img/corsivo.gif[/img][/url]

                                            [url="javascript:void();"][img]editor/img/grassetto.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/sottolineato.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/link.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/allineadestra.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/allineasinistra.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/allineacentro.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/giustifica.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/listaordinata.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/lista.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/undo.gif[/img][/url]
                                            [url="javascript:void();"][img]editor/img/redo.gif[/img][/url]
                                            <select onchange="applicaComando('formatblock',this.options[this.selectedIndex].value);">     
                                            <option>Scegli formato</option>
                                            <option value="h1">Titolo Grande</option>
                                            <option value="h2">Titolo Medio</option>
                                            <option value="h3">Titolo Piccolo</option>
                                            <option value="p">Paragrafo</option>
                                        </select>
                                        <select onchange="applicaComando('forecolor',this.options[this.selectedIndex].value);">     
                                            <option>Scegli un colore</option>
                                            <option value="#00FF00">Verde</option>
                                            <option value="#FF0000">Rosso</option>
                                            <option value="#0000FF">Blu</option>
                                            <option value="#000000">Nero</option>
                                            <option value="#990000">Rosso Mattone</option>
                                        </select>
                                        

                                    </div>
                                    
                                    <input type="submit" value="salva"/>
                                        <input type="reset" name="reset" value="cancel">
                                </form>
                            </div>
                            </body>
    </html> 
    la pagina javascript, editor.js :

    Codice PHP:
    function AttivaFrame(iFrameID){
    if (
    document.getElementById(iFrameID).contentDocument){  
    //Mozilla
    return document.getElementById(iFrameID).contentDocument;
    } else {
    //Internet Explorer
    return document.frames[iFrameID].document;
    }
    }
    function 
    applicaComando(cmdStr,valCmdStr){
    if (!
    document.getElementById("editArea").contentDocument){
    switch(
    valCmdStr){
    case 
    "h1":
    valCmdStr "heading 1";
    break;
    case 
    "h2":
    valCmdStr "heading 2";
    break;
    case 
    "h3":
    valCmdStr "heading 3";
    break;
    case 
    "p":
    valCmdStr "paragraph";
    break;
    }
    }
    AttivaFrame("editArea").execCommand(cmdStr,false,valCmdStr);

    function 
    aggiungiLink(){
    var 
    linkURL prompt("Inserisci il link da aggiungere:""");
    AttivaFrame("editArea").execCommand("createlink",false,linkURL); 
    }    
    function 
    vediCodice(){
    var 
    contenuto AttivaFrame("editArea").body.innerHTML;
    document.getElementById("codice").innerHTML contenuto.replace(/</g,"&lt;");
                                             }
                                             function 
    pulisciCodice(){
                                             var 
    contenuto AttivaFrame("editArea").body.innerHTML;
                                             
    contenuto contenuto.replace(/<br\>/gi,"
    "
    );
                                            
    contenuto contenuto.replace(/(<p\>)(.*)(<\/p\>)/gi,"

    $2</p>"
    );
                                            
    contenuto contenuto.replace(/<\a/gi,"<a");
                                            
    contenuto contenuto.replace(/<\/a\>/gi,"</a>");
                                            
    contenuto contenuto.replace(/<\div\>/gi,"<div>");
                                            
    contenuto contenuto.replace(/<\/div\>/gi,"</div>");
                                            
    contenuto contenuto.replace(/(<strong\>)(.*)(<\/strong\>)/gi,"<span style=\"font-style: bold;\">$2</span>");
                                            
    contenuto contenuto.replace(/(<ul\>)(.*)(<\/ul\>)/gi,"<ul>$2[/list]");
                                            
    contenuto contenuto.replace(/(<li\>)(.*)(<\/li\>)/gi,"[*]$2");
                                            
    //internet explorer    
                                            
    contenuto contenuto.replace(/(<font )(color)(=)(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?)(>)(.*)(<\/font\>)/gi,"<span style=\"$2:$4;\">$9</span>"); 
                                            
    contenuto contenuto.replace(/(<)(align)(=)([A-Za-z]*)(>)(.*)(<\/p\>)/gi,"<div style=\"text-align: $4;\">$6</div>");
                                            
    contenuto contenuto.replace(/(<em\>)(.*)(<\/em\>)/gi,"<span style=\"font-style: italic;\">$2</span>");
                                            
    //opera
                                            
    contenuto contenuto.replace(/(<font )(color)(=\")(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?)(\")(>)(.*)(<\/font\>)/gi,"<span style=\"$2:$4;\">$10</span>"); 
                                            
    contenuto contenuto.replace(/(<div )(align)(=\")([A-Za-z]*)(\")(>)(.*)(<\/div\>)/gi,"<div style=\"text-align:$4;\">$7</div>");        
                                            
    contenuto contenuto.replace(/(<i\>)(.*)(<\/i\>)/gi,"<span style=\"font-style: italic;\">$2</span>");
                                            
                                            
    document.getElementById("codicePulito").value contenuto;    
                                            } 

    e una semplice paginetta di test lato server, in php :

    getTextPage.php :

    Codice PHP:
     echo $_POST['codicePulito']; 


    ecco , il problema è che mi gira solo con Opera, ma non con Firefox !!! Penso che il codice sia giusto e Firefox non dovrebbe avere problemi con lo script. forse ho qualcosa di sbagliato nella configurazione di Firefox ?
    Sarà ma non riesco a cavarne piedi...

    ecco i dati:
    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)
    Opera : Version 9.23

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    62
    no comment ?

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    c'e' poco da dire: provato, funziona
    avevi saltato la funzione load() ma credo solo nel copia e incolla

    cosa c'e' in getTextPage.php?

    non mi risultano impostazioni di firefox che possano rendere inutilizzabile uno script del genere

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    62
    sì era solo un errore di copia e incolla .
    in getTextPage.php c'è solo una stampa a video di

    echo $_POST['codicePulito'];

    Ma non sono andato avanti nella validazione nè altro, perchè la variabile $_POST risulta vuota. Ma se lancio lo script in Opera tutto fila liscio. Adesso: ha oppure no dell'incredibile ?

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    no, sei tu a commettere un errore abbastanza banale

    se qui hai solo il name
    <input type="hidden" name="codicePulito"/>
    come pretendi di accedervi tramite
    document.getElementById("codicePulito")
    ?

    browser indecenti come IE non fanno molta distinzione tra name e id
    ma, appunto, per questo e per molto altro ancora sono browser indecenti!
    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    62
    Hai ragione!
    E' il genere di errore che mi frega più di quelli complessi!!! mi ha ingannato il fatto che Opera facesse funzionare lo script ... Grazie mille!

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.