-1

Перейдите на следующий веб-сайт: www.currys.co.uk - и посмотрите на любой продукт. Вот телевизор например:

http://www.currys.co.uk/gbuk/tv-and-home-entertainment/televisions/televisions/panasonic-viera-tx-49dx650b-smart-4k-ultra-hd-49-led-tv-10144937- pdt.html

Теперь выберите название продукта («PANASONIC VIERA TX-49DX650B Smart 4k Ultra HD 49" LED TV "), и вы увидите маленькую коробочку, сообщающую вам, что у них есть услуга сравнения цен, явно в попытке остановить вас от поиска в Google продукта и найти его дешевле в другом месте.

Это очень умный кусок кода, и я действительно не жалуюсь, как этот розничный продавец использует его, но меня огорчает, что веб-сайт знает, когда я копирую информацию из него. Как они это делают, и как я могу это остановить? Я знаю, что это не Flash-апплет, потому что у меня включена функция «нажми и работай».

2 ответа2

1

Глядя на код на странице, они используют Javascript для обнаружения метода копирования.

Если вы посмотрите на эту ссылку, есть хороший учебник о том, как реализовать эту функцию самостоятельно.


Из статьи (в случае, если ссылка когда-либо станет мертвой), что-то вроде этого будет работать:

<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<style type="text/css">
    span{
        color:blue;
    }
</style>

</head>
<body>
  <h1>jQuery copy, paste and cut example</h1>
  <form action="#">
    <label>TextBox : </label>
    <input id="textA" type="text" size="50" 
          value="Copy, paste or cut message here" />
  </form>

  <span></span>

<script type="text/javascript">

$(document).ready(function() {

    $("#textA").bind({
        copy : function(){
            $('span').text('copy behaviour detected!');
        },
        paste : function(){
            $('span').text('paste behaviour detected!');
        },
        cut : function(){
            $('span').text('cut behaviour detected!');
        }
    });

}); 
</script>
</body>
</html>

Стоит отметить, что, изменяя ссылочный объект $("#textA") , с которым связаны действия, вы можете изменить, какие элементы вы обнаружите копию (например, привязку к DIV, диапазону, целой странице и т.д.). ).

Вы также можете изменить действие, изменив $('span').text('copy behaviour detected!'); код внутри функции действия. Вместо этого вы можете использовать alert('copy detected'); Вы можете вызвать функцию, показать (или скрыть) DIV, содержащий информацию, открыть всплывающее окно, очистить буфер обмена пользователя, чтобы скопированный текст на самом деле не копировал, практически все, что вам нравится.

Чтобы остановить это, отключите Javascript. Однако, если вы это сделаете, больше ничего не будет работать. Глядя на код на веб-сайте Currys, он не отправляет обратно на их серверы, которые вы скопировали - поэтому, хотя веб-страница предупреждает вас о том, что вы копируете текст, владельцы веб-сайтов, похоже, нигде не регистрируются или не записывают это где-либо

0

Они широко используют Ajax Javascript на своей веб-странице. Ajax способен контролировать буфер обмена.

Можно легко создать сценарий, чтобы проверить, скопирован ли заголовок в буфер обмена, и отобразить всплывающее окно, как они это сделали здесь.

Чтобы остановить это, отключите выполнение веб-сайтов на JavaScript. В зависимости от вашего браузера вы можете остановить его только на этом сайте, но, пожалуйста, поймите, что такие сайты, как Javascript, которые так хорошо встроены, перестанут работать правильно. Вы, вероятно, не сможете больше делать заказы на этом сайте, например.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .