Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вставить "ЧТО ТО" в середину текста (https://javascript.ru/forum/events/50673-vstavit-chto-v-seredinu-teksta.html)

123456 07.10.2014 03:02

Вставить "ЧТО ТО" в середину текста
 
Всем доброй ночи!

Имею сайт с кучей текста и задолбали уже растаскивать эти тексты по своим сайтам все кому не лень, естественно без обратной ссылки. Решил вставлять в середину текста скрытый спан размером 1х1px с ссылкой на мой сайт.

Cделал такое на PHP, но из-за очень сильно поднявшейся нагрузки на сервер - пришлось отключить (делать с кешированием я еще не умею). + то что поисковики видят такую штуку прямо посреди текста, еще и скрытую думаю не очень хорошо.

Решил сделать такую же штуку, но на JS. Но никак не могу понять как на нем это реализовать, с PHP вроде попроще было когда делал.

Исходные данные:
- текст НЕ разделен тегами р, div и т.п. Идет как один сплошной текст, в некоторых случаях присутствую теги <br> (иногда сдвоенные), но не всегда, так что на это упор делать не нужно - нужно делить по количеству слов.
- очень и очень желательно реализовать данную штуку на JQuery, так как в нем я хоть как-то разбираюсь, а вот с чистым JS у меня туго.

Буду очень признателен, если поможете. Заранее спасибо всем откликнувшимся!

PS: Гуглил, нашел такую штуку: http://kachkarvv.ru/src-htm/simbols-counter.php

Думаю можно оттуда что то позаимствовать, но не могу понять как и что именно...

krasovsky 07.10.2014 09:09

Это не задача javascript.
Можно попытаться реализовать на html. К примеру запрет выделения текста :
-moz-user-select: none; 
	-khtml-user-select: none; 
	-webkit-user-select: none; 
	-o-user-select: none;

Если вставить нужно обязательно ссылку то впринципе вот такой класс сделает ее невидимой

.invisible {
display: inline-block;
width: 0;
height: 0;
opacity:0;
}

вместо opacity который не поддерживается старьем можно использовать text-indent c большими значениями, чтоб текст ссылки ушел за экран.

http://habrahabr.ru/post/18080/
Статья в которой чувак на js запрещает, мое мнение - лишний код,ибо защита от дурня.

danik.js 07.10.2014 09:43

Открываешь консоль, вводишь там $('.invisible').remove() - и "защита" отключена ))

krasovsky 07.10.2014 09:49

Цитата:

Сообщение от danik.js (Сообщение 333802)
Открываешь консоль, вводишь там $('.invisible').remove() - и "защита" отключена ))

Дело ясное, к счастью у наших копипастеров работает только два пальца на каждой руке - под ctrl-c/ctrl-v слева и под Mouse1/Mouse2 справа. Да и до .remove() тоже еще надо додуматься.

Хотел тоже про консоль написать но подумал зачем копипастерам давать наводку?

danik.js 07.10.2014 10:11

Кажется консоль как-то можно отключить...

Viral 07.10.2014 10:14

danik.js, О_о как?

Aetae 07.10.2014 11:11

Есть способы детектирования. Но букмарклет не отключишь в любом случае.)

krasovsky 07.10.2014 11:18

Цитата:

Сообщение от danik.js
Кажется консоль как-то можно отключить...

не не. По крайней мере не со стороны клиентского\серверного кода. Возможно с каким нибудь параметром запуска браузера.
А при загрузке попросить пользователя перезапустить браузер в таком то режиме )

Alex1233 08.10.2014 00:18

Ребят, не-не-не. Все что Вы тут предлагаете - это не то и не годится. Не нужно ничего запрещать копировать (это с легкостью обходится - я в курсе), нужно просто сделать чтобы в середину текста при копировании добавлялась ссылка на мой сайт, и все.

И как сделать невидимой эту ссылку я в курсе. Мне нужно только автоматизировать процесс подстановки такой ссылки в середину каждого текста на сайте, причем чтобы нагрзка была на клиентской стороне а не на серверной (т.е. PHP не подходит).

Почему это нереально сделать - не пойму? На PHP я ведь это реализовал. И ссылку привел на код который считает слова. Осталось только посчитать все слова, разделить на 2 и добавить нужный код после N-го слова.

Неужели никто не знает как это сделать?

Alex1233 08.10.2014 00:18

PS: 123456 - это я


Часовой пояс GMT +3, время: 02:58.