скопировать элемент как HTML в буфер обмена - PullRequest
3 голосов
/ 26 мая 2010

Мне удалось написать jQuery, чтобы найти элемент и скопировать его html в буфер обмена (т.е. только).

Проблема в том, что когда я вставляю это в область расширенного текстового поля в sharepoint, он вставляет HTML только как текст.

Как мне повторить действие пользователя, выделив ссылку на странице и нажав копировать. Когда я делаю это вручную, а затем вставляю содержимое буфера обмена, область форматированного текста понимает, что это разметка, и реплицирует ссылку как якорь в текстовом содержимом.

Ответы [ 2 ]

2 голосов
/ 06 июля 2017

Это то, что я использовал для копирования / вставки HTML-элемента гиперссылки в буфер обмена, чтобы при вставке его href скрывался, и вы видели только «красивее» имя.

HTML:

<button onclick="copyToClipboard()">Copy me!</button>

Javascript:

var copyToClipboard = (function() {
    var _dataString = null;
    $('.transform').toggleClass('transform-active');
    document.addEventListener("copy", function(e){
        if (_dataString !== null) {
            try {
                e.clipboardData.setData("text/html", link);
                e.preventDefault();
            } finally {
                _dataString = null;
            }
        }
    });
    return function(data) {
        _dataString = data;
        document.execCommand("copy");
    };
})();
2 голосов
/ 26 мая 2010

К сожалению, насколько я знаю, единственный программный доступ, который IE предоставляет буферу обмена, позволяет вам устанавливать текстовые данные и данные URL, но ничего больше: http://msdn.microsoft.com/en-us/library/ms536744(v=VS.85).aspx

Это работает:

window.clipboardData.setData("text", "<div>Testing</div>");

... но есть проблема, которую вы упомянули. К сожалению, это не работает:

window.clipboardData.setData("html", "<div>Testing</div>");

Немного удивительно, правда.

...