У меня есть расширение bbCode для веб-расширений , которое автоматизирует добавление тегов в текст для таких вещей, как BBS, блоги и т. Д.
Я хотел добавить символы, которые оказались бы полезными дляблоки текстового редактора, но моя текущая техника работает только с текстовыми полями и полями ввода.(Это некрасиво, но не имеет отношения к текущему обсуждению)
Я запустил некоторый тестовый код с использованием Clipboard API , который гораздо более элегантен, чем то, что я делал, и работаетв вышеупомянутых полях редактора форматированного текста, в том числе в iframes, но ONLY на SSH (https://) сайты, а не на небезопасных (http://) сайтах. (http: // sites важны, потому что я знаю оряд досок объявлений, которые не используют ssl из-за стоимости, включая ту, которую я администрирую)
Очевидно, я могу определить соединение и использовать различные методы, основанные на этом, но я пытаюсь избежать этого решения.
Ниже приведен код, который я использую, в основном он записывает текущий буфер обмена (функция чтения из буфера обмена здесь не включена), копирует текущий выбор в буфер обмена, записывает его, записывает строку в буфер обмена ("blblblblblbl"), а затем вставляет его.
Из журнала консоли видно, что это navigator.clipboard.writeText('blblblblblblblblblblblblblbl');
, который не выполняется на небезопасных страницах.
При редактировании не выполняется просто clipboard.writeText.
Вот код:
console.log("Current contents of clipboard",(await readFromClipboard()));
document.execCommand('copy'); //copy to clipboard
let copsel = await readFromClipboard();
console.log("selection copied to clipboard", await copsel);
await navigator.clipboard.writeText('blblblblblblblblblblblblblbl');
let afterBl = await readFromClipboard();
console.log("afterBl",afterBl);
document.execCommand('paste');
У меня есть страницадля этого я могу загрузить как http или https в качестве теста, https://www.panix.com/~msaroff/cntedt.html.
Для страницы https журнал консоли:
Current contents of clipboard em ips
selection copied to clipboard Lorem ipsum
afterBl blblblblblblblblblblblblblbl
И пометка заменяет выбранную страницу.
Для страницы http журнал консоли:
Current contents of clipboard http://www.panix.com/~msaroff/cntedt.html
selection copied to clipboard Lorem ipsum
TypeError: navigator.clipboard is undefined
И на странице не вносятся изменения, и содержимое буфера обмена не становится "blblblblbl", что означает navigator.clipboard.writeText
не стреляет.
Так есть ли JAVASCRIPT (не Jquery и т. д.) решение для этой работы?