Esiste un modo cross-browser per ottenere l'HTML del testo selezionato?HTML del testo selezionato
risposta
Questa funzione farlo in tutti i principali browser: [. Ottenere il testo selezionato in un browser, cross-platform]
function getSelectionHtml() {
var html = "";
if (typeof window.getSelection != "undefined") {
var sel = window.getSelection();
if (sel.rangeCount) {
var container = document.createElement("div");
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
container.appendChild(sel.getRangeAt(i).cloneContents());
}
html = container.innerHTML;
}
} else if (typeof document.selection != "undefined") {
if (document.selection.type == "Text") {
html = document.selection.createRange().htmlText;
}
}
return html;
}
// bind events for selection
document.addEventListener('mouseup', function(){
var selectedHTML = getSelectionHtml();
if(selectedHTML)
console.log(selectedHTML)
});
document.addEventListener('keyup', function(e){
var selectedHTML, key = e.keyCode || e.which;
if(key == 16){ // if "shift" key was released
selectedHTML = getSelectionHtml();
if(selectedHTML)
console.log(selectedHTML)
}
});
<ul contenteditable>
<li><p>Select <b>this</b> <em>text</em> right <i>here</i></p></li>
<li>Or <b>this text</b></li>
</ul>
Il problema di questa soluzione è che quando si seleziona la parte caps-locked di
primo comma TESTO DA
essere selezionati secondo comma
non si ottiene aspetta "Testo daESSERE SELEZIONATO "ma"
TESTO A
ESSERE SELEZIONATO
- per qualche motivo tag di annunci del browser che non sono nella selezione per chiudere quelli che sono. C'è un modo per ottenere solo ciò che realmente è nella selezione? – honzzzUn documento HTML è fondamentalmente un albero di nodi: una volta che il testo HTML iniziale è stato analizzato, è praticamente finito e devi occuparti dei nodi. Sarebbe possibile (ma relativamente complicato) convertire la selezione in tipo di stringa che suggerisci ma non è garantito che corrisponda al testo HTML originale, che è solo uno dei tanti modi ugualmente validi di rappresentare il documento. –
Funziona per me grazie !! Mi ha dato anche qualche idea .. –
- 1. Recupero del testo dell'elemento selezionato
- 2. HTML selezionato = "selezionato" non funziona
- 3. HTML selezionato
- 4. AutoSuggestBox selezionato testo
- 5. Codifica HTML del testo giapponese
- 6. Chrome Extension diventa testo selezionato
- 7. Cancella testo selezionato ComboBox
- 8. Operazioni attualmente selezionato testo
- 9. Automazione UI "Testo selezionato"
- 10. Grab testo selezionato UITextView
- 11. Come modificare CSS del testo selezionato utilizzando Google Chrome Extension
- 12. Rimozione del bagliore blu da un input di testo HTML quando selezionato
- 13. Ottenere il testo selezionato in una casella di testo
- 14. Select2 imposta il valore selezionato in HTML
- 15. Ottenere contenuto HTML selezionato nell'editor TinyMCE
- 16. jQuery imposta il testo selezionato
- 17. Append div al testo selezionato
- 18. Come ottenere l'indice del testo selezionato in un AutoCompleteTextView
- 19. Tracciamento del testo selezionato nella visualizzazione Web Android
- 20. Stato selezionato del testo in un controllo segmentato in Xcode
- 21. Select2 non conosce il testo corrispondente del valore selezionato
- 22. Come cambiare il colore del testo selezionato In Internet Explorer?
- 23. Estrazione del testo da HTML Java
- 24. nascondi parte del testo html, css, javascript
- 25. .Per passare() ottenere: valore di testo selezionato
- 26. Ottieni elemento principale di un testo selezionato
- 27. sostituisce il testo selezionato in div contenteditable
- 28. ottiene il testo dell'opzione selezionato in knockout
- 29. Trascina il testo selezionato per spostarlo?
- 30. di jquery, impostato sull'opzione di html-select elemento selezionato atribude per testo, non valore
possibile duplicato (http://stackoverflow.com/questions/10478/getting-selected-text-in-a-browser-multipiattaforma) – Sarfraz
Nessuna delle risposte a questa domanda è molto buona, ed è una domanda diversa: richiede il testo selezionato, non l'HTML di il testo selezionato. –
Già risposto su SO http://stackoverflow.com/questions/10478/getting-selected-text-in-a-browser-cross-platform – wiifm