valor texto seleccionar seleccionado recuperar obtener indice dropdownlist javascript browser

javascript - texto - recuperar valor seleccionado en un select



Obtener el texto seleccionado en un navegador, multiplataforma (5)

Una de las cosas que me gustaría hacer en mi aplicación basada en el navegador es permitirle al usuario seleccionar texto (¡no en un <textarea>, simplemente viejo texto!), Y hacer que mi aplicación muestre una pequeña barra de herramientas que luego puede interactuar con el siguiente (en mi caso, agregar anotaciones).

He encontrado muchas cosas en google que parecen estar enfocadas en escribir editores WYSIWYG, pero eso no es lo que quiero , y la mayoría funcionó en IE pero no en FF2 o 3. Idealmente, me gustaría un poco función que puede devolver el texto seleccionado actualmente en la ventana del navegador que funciona en IE7 (y 6 si es posible), FireFox 2 y 3 y Safari 2 . Si funciona en Opera, sería una ventaja, pero no es un requisito.

Alguien tiene una función que hace esto? ¿O una idea de por dónde empezar?



El comportamiento de los navegadores individuales con respecto a la selección se describe aquí .


Ese plugin de jQuery es genial, pero cumple una tarea muy específica: ajustar el texto que resalta con una etiqueta. Esto puede ser justo lo que quieres. Pero si no quieres (o estás en una situación en la que no puedes) agregar marcas externas a tu página, puedes probar la siguiente solución:

function getSelectedText() { var txt = ''''; if (window.getSelection) { txt = window.getSelection(); } else if (document.getSelection) { txt = document.getSelection(); } else if (document.selection) { txt = document.selection.createRange().text; } else return; return txt; }

Esta función devuelve un objeto que representa la selección de texto. Funciona en todos los navegadores (aunque sospecho que los objetos que devuelve serán ligeramente diferentes dependiendo del navegador y solo son confiables para el texto real del resultado en lugar de cualquiera de las propiedades adicionales).

Nota: Descubrí originalmente ese fragmento de código aquí: http://www.codetoad.com/javascript_get_selected_text.asp


Este código funciona en Safari, IE y Firefox. Espero que sea de alguna ayuda.

var str = (window.getSelection) ? window.getSelection() : document.selection.createRange(); str = str.text || str; str = str + ''''; // the best way to make object a string...


Introducción a Range tiene algunos detalles sobre cómo diferentes navegadores le dan acceso a la selección de texto.

Mi experiencia es que trabajar con estas diferentes API directamente es bastante torpe, así que si wrapSelection funciona para ti, yo iría con eso.