Как Financial Times добавляет отказ от ответственности при вставке текста? - PullRequest
12 голосов
/ 14 июня 2011

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

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

Пример:

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

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

Ответы [ 5 ]

10 голосов
/ 14 июня 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

6 голосов
/ 14 июня 2011

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

5 голосов
/ 14 июня 2011

Веб-мастер использует для этого 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 ftsales.support@ft.com to buy additional rights or use this link to reference the article -",
            "t":true
        }
4 голосов
/ 14 июня 2011

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

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

4 голосов
/ 14 июня 2011

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

$("p").click(function() {
    $.copy($(this).text() + " Disclaimer goes here!");
});
...