Сообщение от 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();