Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Интернет технологии -> JavaScript -> JavaScript Selections (работа с выделениями)


Получение выделения в Navigator 4.0x.

Navigator 4.0x поддерживает метод getSelection() объекта document. Этот метод возвращает строку, содержащую текст текущего выделения. Обычно вызывается так:

document.getSelection()
Следующий пример показывает, как работает метод getSelection()
FORM NAME="myForm">
<TEXTAREA NAME="myArea" COLS="40" ROWS="4"></TEXTAREA>
</FORM>

<SCRIPT LANGUAGE="JavaScript">
<!--

function display() {
  if (!document.getSelection)
    return;
  var str = document.getSelection();
  document.myForm.myArea.value = str;
}

if (window.Event)
  document.captureEvents(Event.MOUSEUP);
document.onmouseup = display;

// -->
</SCRIPT>

Скрипт отображает текущее выделение в поле ввода. В начале, он указывает браузеру захватывать все события onmouseup. Этот способ работает только в Navigator 4.0x, поэтому, перед вызовом выражения, простое определение объекта удостоверяется в наличии браузера Navigator 4.0x,.

Функция срабатывающая на событие сначала присваивает выделенный текст переменной под названием str. И когда свойству value элемента формы присваивается переменная, выделение отображается в поле ввода. Теперь выделите мышью некоторый текст. И если вы используете Navigator 4.0x, выделение незамедлительно отобразится в поле ввода.

Выражение:

if (!document.getSelection)
  return;

прерывает выполнение функции, если у пользователя запущен браузер, который не поддерживает метод getSelection() объекта document.

Обратите внимание как формат документа повлиял на значение возвращенную методом getSelection(). Например, эта страница использует пару <BLOCKQUOTE>... </BLOCKQUOTE> для отступа содержимого, что облегчает чтение. Если вы выбираете некоторые строки текста, вторую (или третью, четвертую, пятую и т.д.), то текст строки отступает, из-за использования <BLOCKQUOTE>. В этом случае, новая строка состоит из возврата каретки (\r), перевода строки (\n), и пяти пробелов. Вы можете определить какие символы переносят строку отобразив значение строки с помощью функции escape().

alert(escape(str));

Функция escape() получает в качестве аргумента строку и возвращает эту же строку с замененными нетекстовыми символами на их эквивалент в шестнадцатеричной системе исчисления.

С помощью регулярных выражений вы можете легко отделаться от ненужных символов. В нашем примере, комбинация \r\n платформо-зависимая, поэтому мы просто удалим пять пробелов, которые следуют после нее. Вот альтернативный скрипт:

<SCRIPT LANGUAGE="JavaScript">
<!--

function display() {
  if (!document.getSelection)
    return;
  var str = document.getSelection();
  if (window.RegExp) {
    var regstr = unescape("%20%20%20%20%20");
    var regexp = new RegExp(regstr, "g");
    str = str.replace(regexp, "");
  }
  document.myForm.myArea.value = str;
}

if (window.Event)
  document.captureEvents(Event.MOUSEUP);
document.onmouseup = display;

// -->
</SCRIPT>

Сначала мы определили какая серия символов вызвала проблему, отображая значение возвращенное функцией escape(), как показано выше. Мы немедленно обратили внимание на последовательность из пяти нетекстовых символов: %20%20%20%20%20

Поэтому, функция unescape() преобразовывает эти символы и присваивает это значение переменной. Регулярное выражение определено как объект RegExp. Обратите внимание на аргумент "g". Он определяет то, что строка должна снова сравниваться с регулярным выражением многократно, если образец найден более одного раза. Результирующая строка отображается после замены всех последовательностей пяти пробелов пустой строкой.

Назад | Оглавление | Далее


 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.