Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.04.2017, 13:18
Интересующийся
Отправить личное сообщение для starhe Посмотреть профиль Найти все сообщения от starhe
 
Регистрация: 23.10.2013
Сообщений: 12

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

<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>


Скрипт выводит ссылку, но простым текстом, то есть адрес можно прочитать, но перейти по нему по клику нельзя.
Подскажите пожалуйста что и как надо переделать в скрипте, чтобы он выводил рабочую ссылку.
Ответить с цитированием
  #2 (permalink)  
Старый 26.04.2017, 13:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от starhe
Скрипт выводит ссылку
Сильно сомневаюсь...
Сообщение от starhe
var copyright = "<br><br>Источник: <a href='"+ href +"'>" + href + "</a>;
В этой строке синтаксическая ошибка...
Ответить с цитированием
  #3 (permalink)  
Старый 26.04.2017, 13:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

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

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

Большего действа от скрипте не объешься.
Ответить с цитированием
  #4 (permalink)  
Старый 08.05.2017, 11:04
Интересующийся
Отправить личное сообщение для starhe Посмотреть профиль Найти все сообщения от starhe
 
Регистрация: 23.10.2013
Сообщений: 12

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

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

Действительно в Ворде и в редакторе мыла, да и здесь преобразует в гиперссылку, а в редакторах CMS оставляет простой текст.
Ответить с цитированием
  #5 (permalink)  
Старый 08.05.2017, 17:11
Интересующийся
Отправить личное сообщение для starhe Посмотреть профиль Найти все сообщения от starhe
 
Регистрация: 23.10.2013
Сообщений: 12

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


Ссылка стала кликабельна. От Пифагора с CuberForum.ru
Ответить с цитированием
  #6 (permalink)  
Старый 09.05.2017, 14:37
Аватар для Опан
Кандидат Javascript-наук
Отправить личное сообщение для Опан Посмотреть профиль Найти все сообщения от Опан
 
Регистрация: 15.03.2013
Сообщений: 100

Разве обязательно координаты временного дива загонять на "соседнюю улицу"? Достаточно сделать его невидимым:
divElement.style.display="none";
Ответить с цитированием
  #7 (permalink)  
Старый 09.05.2017, 14:42
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Опан,
вы об што?
Ответить с цитированием
  #8 (permalink)  
Старый 09.05.2017, 22:56
Аватар для Опан
Кандидат Javascript-наук
Отправить личное сообщение для Опан Посмотреть профиль Найти все сообщения от Опан
 
Регистрация: 15.03.2013
Сообщений: 100

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

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

И то не обязательно, бо за время равное нулю милисекунд никто не успеет рассмотреть этот div.
Ответить с цитированием
  #9 (permalink)  
Старый 10.05.2017, 00:46
Аватар для Опан
Кандидат Javascript-наук
Отправить личное сообщение для Опан Посмотреть профиль Найти все сообщения от Опан
 
Регистрация: 15.03.2013
Сообщений: 100

Видимо, когда я проверял этот вариант, в буфере осталось предыдущее содержимое, это и сбило с толку. Всё равно очень быстро промелькивает, невозможно успеть увидеть даже будь этот див в пределах страницы.
Ответить с цитированием
  #10 (permalink)  
Старый 28.12.2018, 17:26
Новичок на форуме
Отправить личное сообщение для Vantolich Посмотреть профиль Найти все сообщения от Vantolich
 
Регистрация: 28.12.2018
Сообщений: 1

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Скрипт появляющихся элементов при скроллинге на html5 не работает - прошу помочь wladm Библиотеки/Тулкиты/Фреймворки 5 15.02.2015 11:00
Скрипт проллакса фона съедает всю оператив.память на компьютере при скролинге runyugin Элементы интерфейса 2 29.01.2015 13:07
Выполнение скрипта при открытии ссылки с параметром infernorays Общие вопросы Javascript 22 12.06.2013 21:18
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24