desidero posizionare un div
elemento galleggiante in una iframe
con contentEditable
, nel caso l'utente inserisce una certa combinazione di tasti (per scopi di completamento automatico) .Come ottenere il pixel compensato dalla posizione corrente del cursore in un iframe con contentEditable
so come ottenere la posizione del punto di inserimento: document.getElementById('elm1_ifr').contentWindow.getSelection().anchorOffset
posso usare questo per calcolare la proprietà left
del div, ma io non riesco a capire come ottenere il top
.
Un'altra possibilità ho pensato stava usando: document.getElementById('elm1_ifr').contentWindow.getSelection().anchorNode.parentNode
E utilizzando jQuery per ottenere l'offset, ma se quel genitore ha una lunga riga di testo, vorrei solo essere in grado di estrarre la prima posizione della prima linea .
Qualcuno può aiutarmi con questo?
non potevi impostare l'intervallo di essere da 0 alla posizione corrente del cursore, quindi utilizzare 'getBoundingClientRect()' per ottenere gli offset di sinistra + larghezza e top + altezza, quindi ripristinare il cursore alla sua precedente ambientazione? – Mottie
Vecchio thread sì, ma vale la pena che l'inserimento di un elemento [usando 'execCommand ('insertHTML')'] e rimuovendolo rovina lo stack di annullamento/ripetizione. Non importa se annullare/ripristinare è insignificante. – techfoobar
@techfoobar: buon punto, grazie. Ho aggiunto una nota alla risposta. –