Obtener texto seleccionado de un control TextBox usando JavaScript
Al trabajar con cuadros de texto, es posible que necesite recuperar el texto seleccionado. Este artículo tiene como objetivo proporcionar una solución integral para esta tarea, abordando los problemas encontrados con Internet Explorer 6.
La selección de texto dentro de un cuadro de texto se puede lograr utilizando las propiedades integradas de JavaScript. Para los navegadores compatibles con los estándares, las propiedades SelectionStart y SelectionEnd proporcionan el rango de texto seleccionado. Sin embargo, para Internet Explorer, es necesaria una solución alternativa utilizando el objeto de selección.
function ShowSelection() {
var textComponent = document.getElementById('Editor');
var selectedText;
if (textComponent.selectionStart !== undefined) {
// Standards-compliant version
var startPos = textComponent.selectionStart;
var endPos = textComponent.selectionEnd;
selectedText = textComponent.value.substring(startPos, endPos);
} else if (document.selection !== undefined) {
// Internet Explorer version
textComponent.focus();
var sel = document.selection.createRange();
selectedText = sel.text;
}
alert("You selected: " selectedText);
}
Inicialmente, surgió un problema en Internet Explorer 6 que impedía que el código anterior funcionara correctamente. Para solucionar esto, se agrega una llamada focus() antes de acceder al objeto de selección. Además, adjuntar la función ShowSelection() al evento onkeydown proporciona una solución estable para detectar el texto seleccionado.
document.onkeydown = function (e) {
ShowSelection();
};
Para mayor aclaración, el problema con los botones se debe a su comportamiento inherente de anular la selección de texto en Internet Explorer. Por lo tanto, se recomienda utilizar un botón de entrada simple. Al implementar esta solución, puede recuperar de manera efectiva el texto seleccionado desde un control de cuadro de texto, superando los desafíos encontrados con Internet Explorer 6.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3