Pull to refresh

Comments 49

Chromium 5.0.375.125 (53311) Ubuntu 10.10 — пример работает o_O
Работает только при выделении слева направо. В обратном порядке — нет.

Opera 10.70 (6428) x86_64, 2.6.34-zen1
В Chrome Dev 6.0.490.1 всё работает во всех направлениях, видимо автор уже поправил.
Где то год назад копировал статью на одном сайтике, там там контекстная реклама от гугля добавлялась в центр статейки. Заметил не сразу )) Копипаст он такой коварный :))
Сделайте проверку, что если выделен пустой текст, то ссылку не добавлять. Это логичнее будет.
Попробовал — не работает, думал писать зловредный камент А потом вспомнил, что не отключил Noscript на странице. FireFox 3.6 работает. В ИЕ8 глюк — при двойном клике по слову не выделяется ничего. Вообще, подумайте о том, что из-за пары слов не стоит добавлять к ним линк. Хочу выделить слово-два поискать, а оно линк туда сует.
Спасибо :), добавил параметр minlen, в который можно передавать минимально выделяемый текст, плагин и пример обновил.
1. Если выделить так, что выделение заканчивается точкой в конце абзаца, то подсвечивается выделенным вся страница ниже этой точки, по всей ширине.
2. Ctrl+A Ctrl+C — ссылка не вставляется.

Chromium 5.0.375.99
Отличный скрипт. Дорабатывайте!

P.S. Опубликуйте в каком-нибудь блоге, а то на главной не показывается.
Я специально залогинился, чтоб плюсануть пост :)
У меня автоматически копируется выделенный текст — скрипт не срабатывает.
FF 4.0b3
Мак ОС, Хром 6.0.490.1 dev не пашет, сбрасывает выделение. А так — прикольно.
а, не работает копирование из контекстного меню, а с клавы пашет
Может, добавить возможность установки ссылки перед скопированным текстом?
Да, добавил параметр addcopyfirst: true/false, может кому то пригодится, плагин обновил.
У меня при выделении всего текста ссылка не добавляется
Opera 10.70 (3483)
мне подумалась немного другая идея плагина… хотя на плагин она в принципе и не тянет. суть в том, что смысла выделить просто текст и добавить к нему ссылку я не особо вижу. да и не каждый просит ему прислать ссылку с цитатой. а вот сделать срипт, который мог бы копировать сразу и заголовок статьи и ссылку на нее и вставлять в буфер — это было бы полезно. аналог кнопки для твиттера и тд, но только сохранять в буфер.
не вмешивайтесь в мой буфер обмена!
Поддерживаю. В FF есть возможность выделять несколько кусочков текста одновременно. Делается это Ctrl. С данным плагином уже не делается.
О, спасибо — интересная фича!
Поддерживаю! Вы делаете сайт, вот сайтом и занимайтесь. В мой браузер лезть НЕЛЬЗЯ! За девяностые и начало двутысячных жуть как задолбали сайты блокирующие копи-пасту, сохранение картинок и т.д. Если не хотите делиться контентом — не выкладывайте его в публичный доступ.
Выделяешь первые 3 слова — не работает.
и по буковке выделяешь, тоже не работает
У меня была другая идея. Если выделять часть текста, то способ не работает, но можно подумать как улучшить. В общем, можно добавлять, скажем, в конец текста однопиксельную прозрачную gif-картинку с альтом в виде ссылки на источник. При копировании текста, браузер помещает в буффер обмена alt картинки, вместо самой картинки. Таким образом мы получим желаемый результат. Плюс способа в том, что он будет работать с выключенным javascript и можно перенести процесс добавления картинки на плечи серверного скрипта.
Да можно и текстом, а не картинкой в скрытом span или div — автор так и делает, просто добавляет его динамически.
Я где-то такое уже встречал, в середине статьи между абзацами были «закладки» с адресом статьи и именем автора.
И еще если начать выделять и не отпуская клавишу мышки нажать Ctrl+C то ссылка тоже не вставляется)
У вас такой вкусный код получился, завидую белой завистью. С ужасом вспоминаю какие-то свои куски, к финальной версии превращающиеся коктейль из костылей, хаков и «страховочных» экспрешенов…
На то фреймворки и делают, чтоб костыли не писать, а только вызывать :-D
Если выделять текст двойным/тройным кликом в опере, то ссылка не вставляется.
интересно, а такая технология позволяет воровать пользовательский буффер?
Прочтите статью внимательнее. Работа непосредственно с буфером не происходит.
Я просто подумал, что flash умеет читать из буффера. Сейчас посмотрел — все в порядочке. спим спокойно :)
Идея отличная, но на всеобщее обозрение выкладывать вы поторопились — не работает нифига…
у меня в хроме(5.0.375.126) выделенный текст двоиться

в фф, нормально
Ваш код не проходит валидацию jslint и написан без единого var.
По Ctrl+X тоже не работает.
Хромиум 5.0.375.125, Arch.
safari 5.0.1 работает справа налево и слева направо.
Только почему-то если выделить абзац целиком, то появляется выделение всей страницы, но копируется только абзац.
Глюк в Опера 10.61: в буфер попадает весь текст от начала выделения до конца страницы.
Огромное человеческое спасибо!
Как раз к своему последнему проекту применю…
Кажется, этим пользуется РБК и Коммерсантъ.
При событии mouseup мышка не всегда находится над нужным элементом. Поэтому я вешаю плагин не на ссылку или ее родителя, а на html
Нда… плагин работает кривовато немного. Привожу код из www.adme.ru
Работает отлично, нету проблем при полном выделении (Ctrl+A)
(function($) {
    $(function() {
        function addLink() {
               var body_element = document.getElementsByTagName ('body') [0];
               var html = "";
               if (typeof window.getSelection != "undefined") {
                   var selection = window.getSelection();
                   if (selection.rangeCount) {
                       var container = document.createElement("div");
                       for (var i = 0, len = selection.rangeCount; i < len; ++i) {
                           container.appendChild(selection.getRangeAt(i).cloneContents());
                       }
                       html = container.innerHTML;
                   }
               } else {
                   return;
               }
               if (html.toString().split(' ').length < 10) {
                   return;
               }

               var pagelink = "<br/><br/> Источник: <a href='" + document.location.href+ "'>"  +document.location.href+ "</a> © AdMe.ru";
               var copytext = html + ' ' + pagelink;
               var newdiv = document.createElement('div');
               newdiv.style.position = 'absolute';
               newdiv.style.left = '-99999px';
               body_element.appendChild(newdiv);
               newdiv.innerHTML = copytext;
               selection.selectAllChildren(newdiv);
               window.setTimeout(function() {
                   body_element.removeChild(newdiv);
               },0);
        }
        document.oncopy = addLink;
    });
})(jQuery);
Жалко толъко, что в IE не пашет )
автор, как там дела? какие доработки?
Sign up to leave a comment.

Articles