Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333

    Funzione di inserimento caratteri in un rich text editor

    Ciao a tutti
    Nel nostro sito abbiamo difficoltà ad inserire e (ancor +) a far vedere nel browser degli utebti certi caratteri tipo la s e la z sottopuntate ṢṣẒẓ che per altro sono indispensabili per scrivere in dialetto romagnolo, lingua di cui il nostro sito si occupa.
    Per superare questo scoglio ho modificato un rich text editor aggiungendovi una serie di pulsanti che cliccati inseriscono una lettera nel testo o la sostituiscono ad una porzione di testo selezionata.

    Funziona tutto bene ma in MSIE viene solo sostituito il testo ma non viene inserito nulla se non c'è testo selezionato e la lettera viene aggiunta al value del pulsante (provare per credere).

    Potete dare un occhiata per favore provando prima con ff per capire cosa giustamente deve fare e poi con MSIE?
    http://www.iomla.net/dia.htm

    La funzione che dovrebbe inserire il testo è;

    function diacritici(str)
    {
    if(document.selection){
    cDoc = document.getElementById(rteName).contentWindow.doc ument;
    range=cDoc.selection.createRange();
    range.text=str;
    cDoc.selection.empty();
    cDoc.focus();
    } else if (window.getSelection) {

    cWin = document.getElementById(rteName).contentWindow;
    userSelection = cWin.getSelection();
    userSelection=str;
    cWin.document.execCommand('insertHTML',false,userS election);}
    }

    Grazie

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    Originariamente inviato da lucavizzi
    prova a dare un'occhiata qui
    http://www.teria.com/~koseki/memo/xbselection/
    Grazie ho visto e provato ma ma sono al punto di partenza

    Nel mio caso l'area di scrittura è un iframe e non riesco a creare un oggetto selction come dice di fare
    var selection = new Selection(document.getElementById("textAreaId"));
    var s = selection.create();

    L'errore a cui mi riferivo nel mio primo 3d è probabilmente dovuto a un errore di targeting per cui nel caso in cui non sia selezionato alcun testo premnendo un tasto di inserimento di un carattere speciale MNSIE me lo inserisce nel pulsante invece che nel testo in quanto è il pulsante ad avere il fuoco in quanto cliccato.

    Per la cronaca:
    Ho provato a togliere i bottoni e sostituirli con dei links (<a>),
    I caratteri non vengono ouù inseriti nel bottone naturalmente ma vengono messi fuori dall'editor al di sopra di esso in alto a sinistra nella pagina HTML

  4. #4
    tu usi le condizioni

    if(document.selection) else if (window.getSelection)

    quindi il tuo script viene eseguito solo se c'è una selezione attiva.

    nel link che ti ho inviato si parla di StartSelection ed EndSelection che ti servono per saperedove inserire se nulla è selezionato.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    Originariamente inviato da lucavizzi
    tu usi le condizioni

    if(document.selection) else if (window.getSelection)

    quindi il tuo script viene eseguito solo se c'è una selezione attiva.

    nel link che ti ho inviato si parla di StartSelection ed EndSelection che ti servono per saperedove inserire se nulla è selezionato.
    si l'ho provato:
    var selection = new Selection(document.getElementById(rteName));
    var s = selection.create();
    alert("start:" + s.start + ", end:" + s.end);

    ma MSIE mi risponde sempre selection non è definito

    FF risponde:
    Errore: uncaught exception: [Exception... "Cannot convert WrappedNative to function" nsresult: "0x8057000d (NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN)" location: "JS frame :: js/richtext.js :: diacritici :: line 38" data: no]

  6. #6
    pre prendere per id un elemento in un iframe la sintassi è:

    document.NomeIframe.getElementById("idElemento")

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    333
    Originariamente inviato da lucavizzi
    pre prendere per id un elemento in un iframe la sintassi è:

    document.NomeIframe.getElementById("idElemento")
    No mi dispiace ma ho finito le cartucce.
    Le ho provate tutte
    questa è l'ultima versione che con MSIE continua a funzionare benissimo ma solo se ho prtima selezionato del testo altrimenti non funziona
    Se cerco di inserire str alla posizione del cursone usando pasteHTML non succede nulla mentre se uso range.text=str; mi piazza str nel pulsante che chiama la funzione

    var cDoc= document.getElementById(rteName).contentWindow.doc ument;
    cDoc.focus();
    range=cDoc.selection.createRange();
    range.pasteHTML(str);//oppure range.text=str
    range.collapse(false);
    range.select();
    cDoc.selection.empty();
    cDoc.focus();

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.