Как Financial Times добавляет отказ от ответственности при вставке текста?

Вот пример того, что происходит при вставке текста из Financial Times, добавляется верхний абзац.

Заранее спасибо!

Пример:

Пожалуйста, соблюдайте положения и правила FT.com и политику в отношении авторских прав, которые позволяют вам: делиться ссылками; копировать контент для >личного использования; и распространять ограниченные экстракты. Пишите на [email protected], чтобы купить дополнительные права >или используйте эту ссылку для ссылки на статью - http://www.ft.com/cms/s/0/792f1aec->9600-11e0-8256-00144feab49a.html#ixzz1PFrYZiD0

Как стало известно Financial Times, Goldman Sachs предоставил оплачиваемую стажировку родственнику высокопоставленного ливийского чиновника, пока банк проводил убыточные сделки от имени суверенного фонда благосостояния страны.


person ok1ha    schedule 14.06.2011    source источник
comment
Вы имеете в виду вставку текста в Financial Times или вставку текста, скопированного из Financial Times?   -  person Pointy    schedule 14.06.2011
comment
попробуй, это из FT :)   -  person red eyes dev    schedule 14.06.2011
comment
Это действительно очень интересно. У меня нет ответа, но я намерен его найти.   -  person Niklas    schedule 14.06.2011
comment
stackoverflow .com/questions/2026335/   -  person James Montagne    schedule 14.06.2011
comment
См. stackoverflow.com/questions/6098068/ для ответа, который я недавно опубликовал, который показывает один из способов достижения такого рода вещей с использованием чистого CSS.   -  person Spudley    schedule 14.06.2011
comment
Чтобы ответить на ваш конкретный вопрос: FT использует службу под названием Tynt, которая одновременно добавляет и отслеживает действие копирования с помощью JS для добавления скрытого контента к выбору пользователя. Это приводит к более общему вопросу: как бы я это сделал? Я уже спрашивал об этом: stackoverflow.com/questions/2026335   -  person Keith    schedule 19.09.2011
comment
Вы можете попробовать решение этого сообщения, оно сработало для меня как ветер: rewrite-the-paste" title="получить скопированный пользователем текст в jquery и переписать вставку"> stackoverflow.com/questions/16238142/   -  person Cedric    schedule 06.06.2013


Ответы (5)


Вебмастер использует для этого Javascript.

Проверьте файл http://media.ft.com/j/FTTrack2.js.

FT.Tynt={
    initTynt:function(){
        var Tynt=Tynt||[];
        Tynt.push('cqolxGrS4r34rIadbiUt4I');
        Tynt.i={
            "cc":"0",
            "b":true,
            "ap":"Please respect FT.com's <a href='http://www.ft.com/servicestools/help/terms'>ts&amp;cs</a> and <a href='http://www.ft.com/servicestools/help/copyright'>copyright policy</a> which allow you to: share links; copy content for personal use; &amp; redistribute limited extracts. Email [email protected] to buy additional rights or use this link to reference the article -",
            "t":true
        }
person red eyes dev    schedule 14.06.2011

Как уже упоминалось ранее, изменение данных буфера обмена либо ограничено определенными браузерами, либо требует от пользователя разрешения на изменение буфера обмена. Работа вокруг этого вы могли бы

  1. Добавьте обработчик события к событию oncopy
  2. Найдите выбор
  3. Добавлять/добавлять содержимое к содержимому
  4. Измените диапазон выбора, чтобы включить добавленное/предварительное содержимое
  5. Подождите, пока действие копирования не завершится
  6. Удалить добавленный / добавленный контент

Я возился с этим методом и создал плагин, который делает именно это. Все еще предварительная версия и пока тестируется только на FF4/Chrome 11/IE8 (и IE определенно нуждается в дополнительной доработке). Некоторые из приятных вещей, которые вы можете сделать с помощью этого метода, заключаются в том, что вы можете легко, например, обернуть цитаты сообщений форума в [quote=USER]content[/quote] и назначить пользователя в зависимости от того, какое сообщение копируется. По умолчанию скрипт всегда выбирает стиль DOM, но не фактический HTML, поэтому, если вы, например, скопируете полужирный контент, он будет выделен жирным шрифтом при вставке в редактор форматированного текста, но только текст, если он используется. в текстовых редакторах (удаление тегов html).

Этот метод значительно упрощает добавление содержимого в начало по сравнению с добавлением, и в этом случае я все еще не уверен, полностью ли он функционален. Для IE вы можете напрямую изменить буфер обмена, но есть некоторые проблемы, например, при выборе всей страницы или если вы хотите переключить расширенное содержимое копии. У меня не было возможности провести дальнейшее тестирование браузера, но это, по крайней мере, рабочее решение для новых браузеров.

Пример: http://hertzen.com/experiments/jquery.plugin.clipboard/

Другой пример: http://hertzen.com/experiments/jquery.plugin.clipboard/thread.html

Исходный код: https://github.com/niklasvh/jquery.plugin.clipboard

person Niklas    schedule 14.06.2011

Вы реализуете обработчик для события oncopy, манипулируя clipboardDataобъект, вы можете изменить скопированный текст.

person Ernest Friedman-Hill    schedule 14.06.2011
comment
Изменение clipboardData работает только с IE, и обходной путь, показанный там для FF, создает исключение безопасности, по крайней мере, в более поздних версиях FF. - person Niklas; 14.06.2011
comment
Это работает только в старых IE (это не работает в 8 или 9) и является ошибкой безопасности — javascript не должен иметь возможности манипулировать данными буфера обмена. - person Keith; 19.09.2011

Этого можно добиться с помощью подключаемого модуля jQuery с именем jquery copy. Вот пример использования селектора p.

$("p").click(function() {
    $.copy($(this).text() + " Disclaimer goes here!");
});
person User1578    schedule 14.06.2011
comment
Это предопределенный выбор, который скопирован. С FS вы можете выполнить свой собственный выбор, и он добавляет к нему заявление об отказе от ответственности. (+.$copy — это плагин, а не часть jquery) - person Niklas; 14.06.2011

Они используют JavaScript, который можно найти в следующем файле:

http://media.ft.com/j/FTTrack2.js

person Will    schedule 14.06.2011