Как модифицировать скрипт добавляющий текст источник при копировании
Имеется вот такой скрипт:
<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, время: 03:30. |