Ninazu
@Ninazu

Сhrome Extension как вставить текст?

Пробую писать Extension для Сhrome. Создал контекстное меню. Как при клике на меню вставлять текст допустим в textarea?

function addText (info, tab) {
        console.log(info, tab);
}
chrome.contextMenus.create({
            'contexts': ['editable'],
            'onclick': addText
});
  • Вопрос задан
  • 2627 просмотров
Пригласить эксперта
Ответы на вопрос 1
shqn
@shqn
Я так понимаю, контекстное меню будет вызываться только на этой самой textarea. Тогда можно написать что-то вроде этого, запоминая элемент, на котором произошел правый клик.

1. content.js

var AppContent = {
    init: function() {
        document.body.addEventListener("contextmenu", function(event) {
            chrome.runtime.sendMessage({action: "rememberTarget", data: event.target});
        });
    }
};
AppContent.init();


2. background.js

var AppBackground = {
    target: null,
    init: function() {
        chrome.runtime.onMessage.addListener(function(request) {
            if(request.action === "rememberTarget")
                this.target = request.data;
        }.bind(this));
        
        chrome.contextMenus.create({
            'contexts': ['editable'],
            'onclick': function() {
                if(this.target)
                    this.target.value = "some text";
            }.bind(this)
        });
    }
}
AppBackground.init();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы