Ссылка на источник при копировании текста на JS

9:19 14.06.2017
У товарища на форуме заметил, при копировании текста, добавляется ссылка на источник, на то самое сообщение от куда был взят текст. Если честно я отношусь к подобным фишка - "нейтрально", так как нечестный человек может стереть ссылку на источник, а честный и без этой фишки может сослаться на оригинал.

Я просто решил написать о данном скрипте. Я не стал для примера изобретать велосипед, а позаимствовал код в интернете, немного его изменил - добавил заголовок страницы источника и завернул это все в BBcode.
Сам сценарий выглядит так:
function copyright() {
    var page     = document.getElementsByTagName('body')[0];
    var choose   = window.getSelection();
    var original = '<br />Источник: ' + '[url=' + document.location.href + ']' + document.title + '[/url]'; 
    var txt      = choose + original;
    var div            = document.createElement('div');
    div.style.position = 'absolute';
    div.style.left     = '-100000px';
    page.appendChild(div);
    div.innerHTML = txt;
    choose.selectAllChildren(div);
    window.setTimeout(function() {
        page.removeChild(div);
    }, 0);
}

document.oncopy = copyright;

Были идея предоставить пользователю выбрать варианты копирования выделенного текста с ссылкой на источник, в виде HTML ссылки, в виде BBcode и копирование без источника. Сценарий набросал, но пока не довел его до ума.

Для работы сценария необходимо подключить библиотеку jQuery и файл clipboard.min.js (скачать: https://clipboardjs.com).
Сам код для вставки в документ:
document.onmouseup = function() {
    if (window.getSelection) {
        var txt     = window.getSelection();
        var url     = document.location.href;
        var heading = document.title;
        var bbcode  = txt + '\nИсточник: ' + '[url=' + url + ']' + heading + '[/url]';
        var html    = txt + '\nИсточник: ' + '<a href="' + url + '" title="' + heading + '">' + heading + '</a>';
        var block   = $('<div class="window"><strong>Копировать с сылкой на источник в виде:</strong><br /><button class="btn" data-clipboard-text="' + bbcode + '">BBcode</button> <button class="btn" data-clipboard-text="' + html + '">HTML</button> <button class="btn" data-clipboard-text="' + txt + '">Без источника</button></div>');
        $(block).appendTo('body');

        var clipboard = new Clipboard('.btn');
        clipboard.on('success', function(e) {
            console.log(e);
            $('.window').remove();
        });

        clipboard.on('error', function(e) {
            console.log(e);
            $('.window').remove();
        });
    };
};