Искал код, который бы позволял вставлять ссылку при копировании текста.
Код я нашел на нескольких сайтах, но все они имели важную проблему - при копировании большого куска текста, он копировался одним сплошным куском - без разбивания на абзацы.
Пришлось покопаться, но в итоге собрал код, который при копировании сохраняет разметку текста по абзацам:
<script>
function addLink() {
//Get the selected text and append the extra info
var selection = window.getSelection(),
pagelink = '<br /><br /> Read more at: ' + document.location.href,
copytext = selection + pagelink,
newdiv = document.createElement('div');
//hide the newly created container
newdiv.style.position = 'absolute';
newdiv.style.left = '-99999px';
//insert the container, fill it with the extended text, and define the new selection
document.body.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function () {
document.body.removeChild(newdiv);
}, 100);
}
document.addEventListener('copy', (event) => {
const pagelink = `\n\nRead more at: ${document.location.href}`;
event.clipboardData.setData('text', document.getSelection() + pagelink);
event.preventDefault();
});
</script>
В коде можно заменить "Read more at:" на любой нужный вам текст. Обратите внимание, что в коде эта часть повторяется 2 раза.
Комментарии
Отправить комментарий