Как модифицировать скрипт добавляющий текст источник при копировании
Имеется вот такой скрипт:
<script> document.oncopy = function () { var bodyElement = document.body; var selection = getSelection(); var href = document.location.href; var copyright = "<br>Источник: example.com"; 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> Он добавляет строку текста "Источник: example.com" при копировании текста с сайта. Строка источник, добавляется после скопированного текста. Как сделать так, чтобы текст "Источник: example.com" добавлялся при копировании в середину текста, например после первого или второго предложения, которое заканчивается точкой "." |
ondater,
на каждую защиту, найдётся лом ... но если так спокойнее var text = (''+selection).split('.').join(copyright); |
Цитата:
Кстати, после вставки этого кода, текст вставляется после каждой точки, а нужно только после первой, так можно сделать? |
Цитата:
var text = (''+selection).replace('.',copyright); |
Цитата:
|
Здравствуйте.
Спасибо, как раз искал тоже самое. Но теперь хочу изменить. Я хочу указать массив из нескольких слов. Если какие-то из них существуют в скопированном тексте, то последнее из них становится ссылкой, если ни одного слова нет, то ссылка ставится в конце. Если не труд прошу помочь с кодом. Спасибо. И еще вопрос: в приведенном примере (''+selection). Что это значит? зачем тут кавычки? |
Цитата:
с остальным учебник вверху https://learn.javascript.ru/string |
Цитата:
Почитал, не особо получается. Последнее нужное слово становится ссылкой, но теперь скопированный текст вставляется вместе с <div style="position: absolute; left: -99999px;"> соответственно редактор ничего не видит document.oncopy = function () { var bodyElement = document.body; var selection = getSelection(); var href = document.location.href; var copyright = "<a href='"+document.location.href+"'>Собака</a>"; var pos = (''+selection).lastIndexOf("Собака"); String.prototype.replaceAt=function(index, character) { return this.substr(0, index) + character + this.substr(index+6); } var text = (''+selection).replaceAt(pos, 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); }; |
Arroyo,
текст можно заменить, только на текст. |
спасибо. подскажите, как правильно это написать.
|
Часовой пояс GMT +3, время: 18:53. |