Pull to refresh

Кнопка «цитировать» для iOs

JavaScript
При общении на форуме удобно иметь возможность цитировать в своем ответе фразы собеседников.
Простой скрипт поможет перенести выделенный кусок текста в поле ответа.

<a href="javascript://" onClick="document.getElementById('message').value = window.getSelection().toString();">цитировать</a>

демо

Для iOS

В мобильном Safari такое выделение не работает — сброс выделения текста происходит чуть раньше события нажатия на «цитировать».

Необходимо хранить выделение и регулярно обновлять данные:

var selectedRange = null;
selectedRangeID = setInterval(getSelectedRange, 150);

function getSelectedRange() 
{
    try {
	if (window.getSelection) {
            selectedRange = window.getSelection().toString();
        } else {
          if (document.selection) {   // Internet Explorer
            selectedRange = document.selection.createRange().text;
          } else {
            selectedRange = document.getSelection();
          }
        }
    } catch (err) {

    }
};

демо 2

Тогда при нажатии на «цитировать» мы запросим содержание переменной selectedRange и получим выделенный фрагмент.

Скрипт корректно работает на дисктопных браузерах и на Ipad.
Не проверялся на Android-планшетах.
Tags:опыт
Hubs: JavaScript
Total votes 11: ↑4 and ↓7 -3
Views2K
JavaScript Developer
from 2,700 €DiscoRemote job
JavaScript-разработчик
to 180,000 ₽MobilityРязань
JavaScript разработчик
from 170,000 to 300,000 ₽WeMakeTeamRemote job
JavaScript разработчик
from 180,000 ₽SportrecsМоскваRemote job
Javascript разработчик
from 160,000 to 220,000 ₽ArtezioМосква

Top of the last 24 hours