Я работаю над заменой надстройки тегов bbCodeXtra, которая не будет перемещаться в Webextensions, и у меня возникают проблемы с чтением содержимого буфера обмена.
В процессе я изучаю javascript и многократно использую много кода в том, что, вероятно, глупо и, безусловно, глубоко уродливо.
Обратите внимание, что мне нужно только прочитать текст данных, вы можете увидеть основы того, как этот аддон должен функционировать, посмотрев на его предшественник XUL, bbCodeXtra .
Код для функции, которая читает буфер обмена:
function readClipboard() {
field = document.activeElement;
var area = document.getElementById("fcb_txt_area");
if (area) {
// console.log("Found existing area");
//area.setAttribute("style", "visibility:visible;");
area.setAttribute("style", "display:inline;");
} else {
// console.log("Creating new area");
area = document.createElement("textarea");
area.setAttribute("id", "fcb_txt_area");
if (field) {
field.parentNode.append(area);
} else {
document.body.appendChild(area);
}
area.contentEditable = true;
}
area.textContent = '';
area.select();
//console.log('Pre-paste: ' + area.value);
//console.log(document.execCommand("paste"));
document.execCommand("paste");
var value = area.value;
//console.log('Post-paste: ' + area.value);
area.setAttribute("style", "display:none");
console.log("Clipboard Contents: ",value);
return value;
}
Работает нормально, но только на отдельных строках текста или html:
В единственной строке простого текста я получаю то, что хочу, на консоли:
Clipboard Contents: "https://discourse.mozilla.org/c"
В одной строке HTML я получаю:
Unknown property ‘zoom’. Declaration dropped.
Что является (я думаю) свойством веб-страницы, страницы публикации доски объявлений phpBB.
На многострочном тексте я получаю:
Clipboard Contents: line1line2line3
но я скопировал:
line1
line2
line3
С помощью MS word я копирую и получаю: (просто копирую одно слово, «попробуй»)
Clipboard Contents: content_script.js:70:5
Unknown property ‘mso-ascii-theme-font’. Declaration dropped. posting.php
Unknown property ‘mso-fareast-font-family’. Declaration dropped. posting.php
Unknown property ‘mso-fareast-theme-font’. Declaration dropped. posting.php
Unknown property ‘mso-hansi-theme-font’. Declaration dropped.
………
Это довольно очевидно - функция, подавляющая раздутые стили Word / html по умолчанию.
Мои вопросы:
Как читать содержимое буфера обмена и сохранять новые строки, и как мне очистить / расшифровать такие вещи, как html и word?