Показать сообщение отдельно
  #1 (permalink)  
Старый 17.06.2015, 09:48
Аспирант
Отправить личное сообщение для xintrea Посмотреть профиль Найти все сообщения от xintrea
 
Регистрация: 02.01.2011
Сообщений: 56

Копирование текста в буфер обмена в браузере через JavaScript
Запугали меня тут аналитикой сайта, на котором крутится MyTetra Share, что он может попасть в бан яндекса и гугля. А все потому, что в этом проекте собирается информация обо всем, что встречается в жизни, и я не задумываясь выкладываю прямые ссылки туда, где лежит то, о чем идет речь. Бывает, что в статье очень много ссылок, и я не предавал раньше этому большого значения. Пока не увидел вот это:

Код:
    Заспамленность ссылками: 3 из 5 (9.1)

    Вероятность фильтра на исх. ссылки (beta): 60%
Никогда не думал, что мне придется скрывать ссылки, но, видимо, надо.

Есть несколько механизмов сокрытия ссылок. Но все они обладают одной и той же проблемой: после сокрытия, правый клик по преобразованной ссылке не позволит скопировать URL ссылки в буфер обмена.


Вариант 1

Вначале я сделал финт ушами: в тексте страницы ссылки представляю как

Код:
<span class=«hyperurl» url="...«>Текст</span>
а после загрузки преобразую эти теги в <a href> через JavaScript. То есть, ссылки для браузера остаются обычными. Однако меня предупредили, что поисковики уже научились „выполнять“ страницу в песочнице, и индексируют и HTML страницы, и обработанный HTML-код. То есть, напрямую сделать так чтоб и поисковик не посчитал URL, и пользователю было удобно - нельзя.


Вариант 2

Тогда я решил воспользоваться небезызвестным ZeroClipboard (http://zeroclipboard.org).

Решил сделать так: рядом с обработанной ссылкой ставить значек копирования (примерно как в википедии у внешней ссылки). При клике по ссылке - переходим по ссылке через механизм скрытия ссылок. При клике по значку копирования - копировать ссылку в буфер обмена. Немного непривычно, но хоть какая-то забота о пользователе.

Но у ZeroClipboard есть одна трабла: так как он реализуется через Flash, то в Firefox при наведении на иконку копирования появляется надпись „Блокировать...“. Она настолько ужасна, что оставлять в таком виде нельзя. (Сейчас сделано именно так (значек есть, кликать по нему, ссылки пока обычные). Пример http://webhamster.ru/mytetrashare/in...3267sw0y5sfn2e)

Теперь вопрос. Как же по-православному, кроссбраузерно, скопировать текст в буфер обмена через JavaScript?
Ответить с цитированием