Вставлять текст в текстовую область / ввод текста в позиции курсора, когда код выполняется в скрипте содержимого Chrome Extension - PullRequest
1 голос
/ 12 декабря 2010

Я делаю расширение для Chrome, которое помещает некоторые сохраненные, регулярно используемые фрагменты текста в текстовые поля ввода и текстовые области при выборе элемента контекстного меню.

Способ его настройки на данный момент.в скрипте содержимого есть строка, которая заботится о вставке:
document.activeElement.value = "TEXT TO INSERT" + document.activeElement.value;

Это помещает текст в начало любого текстового поля / редактируемой области.Было бы желательно вставлять текст везде, где пользователь щелкает в текстовом поле, а не только в начале.

Я видел много примеров для ввода текста при помощи курсора / каретки, но не виделсмог заставить их работать из скрипта контента.Поскольку для этого не требуется совместимость с различными браузерами, какой самый простой способ вставить этот текст в курсор?

Спасибо за помощь

1 Ответ

0 голосов
/ 12 декабря 2010

Решение состоит в использовании кода, найденного в http://www.sitepoint.com/forums/showthread.php?t=709013

Изменение первой пары строк этого скрипта таким образом, чтобы они читали

function insertAtCaret(text) {
    var txtarea = document.activeElement;

. Тогда JavaScript не нуждаетсяобъявлен идентификатор выбранного элемента.

Это входит в скрипт содержимого вместе с

chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) {
insertAtCaret(request.text);
if (request.greeting == "hello")
   sendResponse({farewell: "laters"});
else
  sendResponse({farewell: "byebye"}); // snub them.    
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...