span - obtener el texto de un select javascript
Obtener el texto destacado/seleccionado (3)
Esta solución funciona si está usando Chrome (no puede verificar otros navegadores) y si el texto está ubicado en el mismo elemento DOM:
window.getSelection().anchorNode.textContent.substring(
window.getSelection().extentOffset,
window.getSelection().anchorOffset)
¿Es posible obtener el texto resaltado en un párrafo de un sitio web, por ejemplo, utilizando jQuery?
Obtener texto resaltado de esta manera:
window.getSelection().toString()
y por supuesto un tratamiento especial para ie:
document.selection.createRange().htmlText
Obtener el texto que el usuario ha seleccionado es relativamente simple. No se puede obtener ningún beneficio involucrando a jQuery, ya que no necesita nada más que la window
y los objetos de document
.
function getSelectionText() {
var text = "";
if (window.getSelection) {
text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
text = document.selection.createRange().text;
}
return text;
}
Si está interesado en una implementación que también se ocupará de las selecciones en los elementos <textarea>
y texty <input>
, puede usar lo siguiente. Desde ahora es 2016 estoy omitiendo el código requerido para el soporte de IE <= 8, pero he publicado cosas para eso en muchos lugares en SO.
function getSelectionText() {
var text = "";
var activeEl = document.activeElement;
var activeElTagName = activeEl ? activeEl.tagName.toLowerCase() : null;
if (
(activeElTagName == "textarea") || (activeElTagName == "input" &&
/^(?:text|search|password|tel|url)$/i.test(activeEl.type)) &&
(typeof activeEl.selectionStart == "number")
) {
text = activeEl.value.slice(activeEl.selectionStart, activeEl.selectionEnd);
} else if (window.getSelection) {
text = window.getSelection().toString();
}
return text;
}
document.onmouseup = document.onkeyup = document.onselectionchange = function() {
document.getElementById("sel").value = getSelectionText();
};
Selection:
<br>
<textarea id="sel" rows="3" cols="50"></textarea>
<p>Please select some text.</p>
<input value="Some text in a text input">
<br>
<input type="search" value="Some text in a search input">
<br>
<input type="tel" value="4872349749823">
<br>
<textarea>Some text in a textarea</textarea>