Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente bannato
    Registrato dal
    Jun 2001
    Messaggi
    38

    [DOM & Javascript] posizione carattere

    Salve a tutti, vi espongo il mio problema.

    Creo un elemento "DIV" al cui interno aggiungo un elemento
    di tipo "TextNode".

    Questo è il codice che utilizzo :

    codice:
    <html>
        <head><title>Pagina di prova</title></head>
        <body id="idBody" >
            bodyObj = document.getElementById("idBody");
            divObj = document.createElement("div");
            divObj.style.setProperty("position", "absolute", null);
            divObj.style.setProperty("top", 100, null);
            divObj.style.setProperty("left", 100, null);
            divObj.style.setProperty("font-family", "sans-serif", null);
            divObj.style.setProperty("font-size", 20, null);
    
            textObj = document.createTextNode("testo di prova");
            textObj.addEventListener("click", myFunction, false);
    
            divObj.appendChild(textObj);
            bodyObj.appendChild(divObj);
        </body>
    </html>
    Gestendo l'evento "click" associato all'elemento textObj
    vorrei poter stabilire su quale carattere del testo ho cliccato.
    Sapete aiutarmi?

    grazie.

  2. #2
    Utente bannato
    Registrato dal
    Jun 2001
    Messaggi
    38
    nessun aiuto?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    codice:
    <html>
        <head><title>Pagina di prova</title></head>
        <body id="idBody" >
    <script type="text/javascript">
            bodyObj = document.getElementById("idBody");
            divObj = document.createElement("div");
            divObj.style.setProperty("position", "absolute", null);
            divObj.style.setProperty("top", 100, null);
            divObj.style.setProperty("left", 100, null);
            divObj.style.setProperty("font-family", "sans-serif", null);
            divObj.style.setProperty("font-size", 20, null);
    
            textObj = document.createTextNode("testo di prova");
            textObj.addEventListener("click", function(){alert(window.getSelection());}, false);
    
            divObj.appendChild(textObj);
            bodyObj.appendChild(divObj);
    
    </script>
        </body>
    </html>
    è una sintassi valida solo per i browser compatibili con il DOM level 2 (in pratica Mozilla e affini).
    Per Explorer dovresti usare un codice completamente diverso, ma visto il tuo script, non ha i troppe intenzione di farlo girare su Explorer...
    cmq questo metodo è la prima volta che mi capita di utilizzarlo, i metodi del DOM2 sono molto interessanti, ma per ora ancora poco applicabili...cmq...se ti serve una mano, posta, se mi accorgo leggo..così magari imparo qualcosa (come adesso (speriamo)

    ciauzzz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  4. #4
    Utente bannato
    Registrato dal
    Jun 2001
    Messaggi
    38
    Innanzitutto grazie per la risposta, ormai non ci speravo più!!!!

    ma visto il tuo script, non ha i troppe intenzione di farlo girare su Explorer...
    Si hai ragione, sto sviluppando pensando al "browser del futuro"!


    Il metodo che mi hai suggerito te funziona ma solamente nel caso in cui io selezioni una porzione di testo.
    La mia intenzione è invece quella di determinare il carattere su cui si clicca (senza bisogno di selezionarlo).

    Pensavo a qualcosa del genere :
    - dall'evento mi faccio restituire le coordinate (tramite clientX e clientY) del cursore
    - conoscendo la posizione dell'elemento DIV ("top" e "left") posso determinare la posizione del cursore relativamente alla posizione del DIV (tramite una semplice sottrazione)
    - conoscendo lo spazio occupato da ogni carattere e il numero di caratteri del testo posso trovare la posizione del carattere cliccato.

    Ebbene il mio problema è quello di determinare spazio occupato da ogni carattere.

    Spero di essermi spiegato bene. Ciao.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    non mi è molto chiaro il tuo intento, il ragionamento che hai fatto per recuperare la posizione relativa del mouse sul testo va bene, ma poi da lì, come faresti a capire quanto spazio occupa una determinata lettera?

    è questo quello che vuoi fare giusto? sapere quanti pixel occupa una lettera?
    mah...questo dipende dal tipo di font utilizzato e dal tipo di lettera....

    Una precisazione sul mio script precedente: in realtà, getSelection non fa (ancora) parte delle specifiche, ma è un estensione di Mozilla. per cui cmq nel tuo intento di sviluppare secondo le specifiche non andrebbe cmq bene...

    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  6. #6
    Utente bannato
    Registrato dal
    Jun 2001
    Messaggi
    38
    è questo quello che vuoi fare giusto? sapere quanti pixel occupa una lettera?
    Si, è proprio questo che voglio fare.
    Se io riuscissi a determinare lo spazio occupato da ogni carattere avrei risolto il mio problema.

  7. #7
    Utente bannato
    Registrato dal
    Jun 2001
    Messaggi
    38
    up.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    non è che non voglia aiutarti...è che non posso...non penso che con la tua strategia tu riesca ad ottenere lo spazio occupato dai caratteri...io cercherei strade alternative...ma non mi viene in mente niente....se non fare uno studio a priori dello spazio occupato da una determinata lettera in un determinato font...
    ma non penso sia una strada percorribile..in generale...
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

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.