Как я могу остановить JavaScript от изменения буфера обмена?

13

Все больше и больше я обнаруживаю, что, когда я копирую текст с новостного сайта, сайт добавляет собственную ссылку на рекламу / сноску в мой буфер обмена, так что когда я вставляю, к скопированному тексту добавляется что-то вроде:

[Текст, который я скопировал] ДЛЯ БОЛЬШЕ, ПРОЧИТАЙТЕ НА http://www.example.com/link/to/story

Я восхищаюсь техническими возможностями, которые сделали это возможным, но я хотел бы остановить это в своем браузере. Я просмотрел about: config для «clipboard» и «copy», но единственной настройкой, которую я нашел, была автопиция при выделении.

Есть ли хороший способ остановить это, чтобы при копировании я получал только выделенный текст, полагаясь только на встроенную в Firefox функцию копирования и не вызывая чей-либо JavaScript или другие настройки сайта? Я не люблю сайты, рассказывающие моему браузеру, как работать.

Например, скопируйте один из забавных «фактов» здесь - при вставке вы добавите следующий текст:

Подробнее читайте: http://www.linuxscrew.com/2007/10/28/fun-chuck-norris-vs-linus-torvalds/#ixzz1mUKtACkt

Они не просто перехватывают нажатие клавиши control-C, я получаю его, когда выбираю «копировать» в меню правой кнопки мыши.

Я хотел бы, чтобы мой браузер полностью игнорировал этот трюк.

Я повторил это на Firefox, IE и Google Chrome.

skiphoppy
источник
1
Я думаю, что IE не делает этого.
kinokijuf
2
Вы нажимаете [Ctrl] + [C], чтобы скопировать? Горячая клавиша копирования системы может быть перехвачена JavaScript и установкой Selecton+ Junkв буфер обмена. Более вероятным случаем является то, что есть скрытый текст (через CSS), который включается в ваши выборы. Если вы включите ссылку на такую ​​статью, мы можем изучить ее и найти обходной путь или решение этой ужасной практики.
iglvzx
Дальнейшее чтение: daringfireball.net/2010/05/tynt_copy_paste_jerks
Джош Ли

Ответы:

7

Чтобы отключить это поведение в Firefox:

  1. В строке URL введите: about:config
  2. Нажмите Enter
  3. В поле поиска введите: dom.event.clipboardevents.enabled
  4. Дважды щелкните его, чтобы переключить его значение на false .
Майк
источник
Кажется, не работает для меня в Firefox 68.0.1.
За Лундберг
5

Оказывается, этот JavaScript-код обслуживается «сервисом» tynt.com. Перенаправление tcr.tynt.com на 127.0.0.1 в моем файле hosts решило проблему для меня. Из того, что я читал в другом месте, может быть несколько серверов, которые должны быть заблокированы. Подписки на списки Adblock также могут решить проблему, и вы можете установить фильтр в своем программном обеспечении для блокировки рекламы, чтобы исправить ее.

Что бы мне действительно хотелось, так это флаг about: config, чтобы удалить разрешение для JavaScript на изменение буфера обмена.

skiphoppy
источник
0

То, что вы описываете, происходит только тогда, когда я выбираю одну из рекламных ссылок, которая подчеркнута зеленым:

Рекламная ссылка

Поэтому, когда вы копируете это, никто не использует ваш буфер обмена. Вы копируете гиперссылку с сайта.

Чтобы эти ссылки не вставлялись на веб-сайт, найдите решения для блокировки рекламы в своем браузере.

Der Hochstapler
источник
2
Нет, я боюсь, что это происходит в каждой строке. Однако я обнаружил, что он может быть заблокирован некоторыми списками блокировки рекламы.
skiphoppy
Я попробовал это с Firefox, Chrome и IE. Все они показали одинаковое поведение. Я предполагаю, где ссылки размещены и как они выглядят, может даже отличаться между экземплярами.
Der Hochstapler
1
Вы читали ответ, который я дал о тинт? Видимо, Tynt милостиво заблокирован на вашей машине или в сети. Это было для моего коллеги тоже. Поведение, которое я получал, полностью отличалось от того, что вы описываете. Мне вставляли текст, слова «Читать дальше», а не просто гиперссылку.
skiphoppy