Показать сообщение отдельно
  #26 (permalink)  
Старый 06.08.2010, 23:37
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от x-yuri
Просто подумал, что $Selection.get могло бы сразу текст возвращать.
Насколько я знаю, из document.selection не вытащить выделенный текст, надо сначала TextRange создать. В остальных браузерах Selection хоть и преобразуется в строку, но по спецификации выделение может содержать несколько Range-объектов, поэтому:
var range = $Selection.getRange(), // получаем TextRange или *!*первый*/!* Range
    text  = $Range.stringify(range); // получаем выделенный текст

Хотя ничего страшного, наверное, не будет, если $Selection добавить метод getText:
$Selection = {
   …
   getText: function () {
        return $Range.stringify(this.getRange());
   }
};
Кому как нравится Просто не хотел, чтобы $Selection знал, как работать с Range/TextRange, но этого избежать не совсем получилось, метод для восстановления выделения, все же знает, что надо выполнить textrange.select();
Ответить с цитированием