У меня есть расширение, которое добавляет форматирование для ввода областей на веб-странице (например, bbCode, HTML, разметка и т. Д.)
Я добавляю символы, что означает, что пользователи могут захотеть не использовать это вполя редактирования расширенного текста.
Проблема заключается в том, что в этих случаях эти элементы часто находятся в iframes и выполняются для страницы, а также iframes, где находится курсор.
Поскольку у меня есть пользовательопция ввода (с использованием функции prompt
), это означает, что пользователю несколько раз предлагается элемент iframe, потому что скрипт запускается вверх и вниз по цепочке iframe.
Я сократил содержимое скрипта доминимальные части ниже, чтобы показать операцию.
Я пытался использовать getElementById
, чтобы получить конкретный идентификатор элемента в самом нижнем iframe, и просто выполнить там, но я получаю <unavailable>
в этомдело.(Это должно выполняться на блоггере, WordPress, phpBB и т. Д., Так что имя элемента не известно до запуска программы, я не могу подчеркнуть это достаточно сильно)
Чтобы изменить текст, я используюdocument.execCommand('copy')
и document.execCommand('paste')
для доступа и замены выбора / местоположения курсора.
(function(global) {
var clickedElement = null;
document.removeEventListener("mousedown", function(event) {
//right click
if (event.button == 2) {
clickedElement = event.target;
}
}, true);
browser.runtime.onMessage.removeListener(function(commandString, sendResponse) {
CommandParse(commandString);
}, true);
document.addEventListener("mousedown", function(event) {
//right click
if (event.button == 2) {
clickedElement = event.target;
}
}, true);
browser.runtime.onMessage.addListener(function(commandString, sendResponse) {
CommandParse(commandString);
});
async function CommandParse(argString) {
console.log("am I looping");
}
}) (this);
Есть ли способ убедиться, что скрипт Просто вставлен там, где курсор / выделениеявляется?(это может быть либо)
Как к вашему сведению, мой первоначальный (несколько ограниченный) выпуск - здесь , и дает учебник по его работе.