Javascript копирует содержимое расширенного текста в буфер обмена

Мне нужна помощь в копировании богатого текста в буфер обмена с использованием JavaScript. я искал вокруг и не нашел ничего в соответствии с моей конкретной потребностью.

Мой JS

function ctrlA1(corp) {
  with(corp) {
  }
  if (document.all) {
    txt = corp.createTextRange()
    txt.execCommand("Copy")
  } else
    setTimeout("window.status=''", 5000)
}

HTML

<div id="sc1">hello <br> <b> world </b> </div>
<button onclick="ctrlA1(document.getElementById('sc1') )"></button>

Вышеприведенный код не работает и получает ожидаемую ошибку объекта. любая помощь приветствуется. Я видел там библиотеку под названием zeroclipboard, но предпочел бы написать свою собственную функцию.

ИЗМЕНИТЬ Теперь у меня есть эта функция, чтобы выбрать текст на странице. можно ли написать формулу для копирования выбранного диапазона как?

function containerSelect(id) {
containerUnselect();
if(document.selection) {
var range = document.body.createTextRange();
range.moveToElementText(id);
range.select();
}
else if(window.getSelection) {
var range = document.createRange();
range.selectNode(id);
window.getSelection().addRange(range);
}
}

<label onclick="containerSelect(this); select_all()">
<p>hello world</p>
<img src="imagepath.png">
</label>

Ответ 1

Я искал неделю и наконец нашел свой ответ!!! для тех из вас, кто хочет скопировать богатый текст в буфер обмена с помощью javascript, затем используйте функцию по ссылке ниже, работает как шарм. нет необходимости в использовании вспышки и других вещей:)

Копирование изображения в буфер обмена с использованием JavaScript/jquery

Ответ 2

Этот крошечный JS-плагин копирует richtext без использования Flash: https://www.npmjs.com/package/clipboard-js

Он основан на https://clipboardjs.com/ - но это обновление, на мой взгляд, потому что оригинал поддерживает только обычный текст.

Код прост:

clipboard.copy({
    "text/html": "<i>Markup</i> <b>text</b>. Paste me into a rich text editor."
});

Ответ 3

Хорошо, вот сделка, которую большинство современных веб-браузеров не позволят вам иметь доступ к клип-плате. Однако, как со всем, есть работа вокруг.

https://github.com/zeroclipboard/zeroclipboard

Это плагин js/flash, который позволяет копировать текст в буфер обмена.
(я считаю, вы можете использовать его для богатого текста.)