как вызвать функцию после выделения текста - PullRequest
1 голос
/ 07 февраля 2012

Я хочу вызвать функцию после выделения текста в документе.Следующий код не работает

var showSelWin = document.getElementById('innerwindow');
var txt = ' ';
if (document.getSelection) function(){
txt = document.getSelection();
showSelWin.innerHTML = txt;
document.body.insertBefore(showSelWin, document.body.firstChild);}

1 Ответ

0 голосов
/ 02 марта 2012

Метод document.getSelection работает в Google Chrome, Safari и Internet Explorer иначе, чем в Firefox и Opera.

Возвращает строку в Firefox и Opera и возвращает объект selectionRange в Google Chrome, Safari и Internet Explorer (метод document.getSelection идентичен методу window.getSelection в Google Chrome, Safari и Internet Explorer).

В Firefox, Opera, Google Chrome, Safari и Internet Explorer от версии 9 используйте метод window.getSelection и метод toString объекта selectionRange, возвращаемого методом window.getSelection, чтобы получить текстовое содержимоевыделения.

В более старых версиях Internet Explorer используйте метод createRange объекта выделения и свойство text объекта TextRange, возвращенное методом createRange, чтобы получить текстовое содержимое выделения.

рабочий образец для вас: http://jsfiddle.net/uX628/

function GetSelectedText () {
    if (document.getSelection) {    // all browsers, except IE before version 9
        var sel = document.getSelection ();
        // sel is a string in Firefox and Opera,
        // and a selectionRange object in Google Chrome, Safari and IE from version 9
        // the alert method displays the result of the toString method of the passed object
        alert (sel);
    }
    else {
        if (document.selection) {   // Internet Explorer before version 9
            var textRange = document.selection.createRange ();
            alert (textRange.text);
        }
    }
}
...