Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скрипт добавления ссылки при копировании (https://javascript.ru/forum/misc/68605-skript-dobavleniya-ssylki-pri-kopirovanii.html)

starhe 26.04.2017 13:18

Скрипт добавления ссылки при копировании
 
Здравствуйте. Есть вот такой скрипт, который добавляет ссылку на источник, при копировании текста.

<script> 
document.oncopy = function () { 
var bodyElement = document.body; 
var selection = getSelection(); 
var href = document.location.href; 
var copyright = "<br><br>Источник: <a href='"+ href +"'>" + href + "</a>;
var text = selection + copyright; 
var divElement = document.createElement('div'); 
divElement.style.position = 'absolute'; 
divElement.style.left = '-99999px'; 
divElement.innerHTML = text; 
bodyElement.appendChild(divElement); 
selection.selectAllChildren(divElement); 
setTimeout(function() { bodyElement.removeChild(divElement); 
}, 0); 
}; 
</script>


Скрипт выводит ссылку, но простым текстом, то есть адрес можно прочитать, но перейти по нему по клику нельзя.
Подскажите пожалуйста что и как надо переделать в скрипте, чтобы он выводил рабочую ссылку.

ksa 26.04.2017 13:34

Цитата:

Сообщение от starhe
Скрипт выводит ссылку

Сильно сомневаюсь...
Цитата:

Сообщение от starhe
var copyright = "<br><br>Источник: <a href='"+ href +"'>" + href + "</a>;

В этой строке синтаксическая ошибка...

ksa 26.04.2017 13:44

Цитата:

Сообщение от starhe
Скрипт выводит ссылку, но простым текстом

Скрипт добавляет ссылку в буфер обмена к выделенному фрагменту.

Будет ли ссылка кликабельной - зависит от того, куда вставляется содержимое того буфера.
Если в просто й текстовый документ - будет просто текст. Если в тот же Word - будет как гипперссылка.

Большего действа от скрипте не объешься. :no:

starhe 08.05.2017 11:04

Цитата:

В этой строке синтаксическая ошибка..
.
Спасибо, ошибку нашёл, но как ни странно скрипт работал, да и работает и с ней.

Вот тут с ошибкой https://starper55plys.ru/wordpress/z...a-ot-plagiata/

Действительно в Ворде и в редакторе мыла, да и здесь преобразует в гиперссылку, а в редакторах CMS оставляет простой текст.

starhe 08.05.2017 17:11

Цитата:

Большего действа от скрипте не объешься
Вот чего можно добиться
text1 = document.createTextNode(text); //создал текстовый узел
  divElement.appendChild(text1); //и добавил его


Ссылка стала кликабельна. От Пифагора с CuberForum.ru

Опан 09.05.2017 14:37

Разве обязательно координаты временного дива загонять на "соседнюю улицу"? Достаточно сделать его невидимым:
divElement.style.display="none";

Dilettante_Pro 09.05.2017 14:42

Опан,
вы об што?

Опан 09.05.2017 22:56

Об то: вместо
divElement.style.position = 'absolute';
divElement.style.left = '-99999px';

можно
divElement.style.display="none";

И то не обязательно, бо за время равное нулю милисекунд никто не успеет рассмотреть этот div.

Опан 10.05.2017 00:46

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

Vantolich 28.12.2018 17:26

Всем привет, скажите плз, а можно эту ссылку как-то спрятать у копипастера, чтобы он ее не увидел когда будет вставлять текст? Добавить атрибут style не получается.


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