API буфера обмена для чтения / записи / вставки на сайт без SSL - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть расширение 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 и т. д.) решение для этой работы?

...