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, который позволяет копировать текст в буфер обмена.
(я считаю, вы можете использовать его для богатого текста.)