события выбора текста javascript - PullRequest
9 голосов
/ 30 января 2012

Это не только для расширения Google Chrome, но и для JavaScript

Я пишу расширение Chrome, в котором при выделении текста и отображении контекстного меню я отображаю свой элементв контекстном меню, которое при нажатии должно обработать выделенный текст

после вызова контекстного меню и выбора моей опции, я получаю пустой объект со всеми значениями нулей и нулей

, поэтому я хочу реализовать некоторыемеханизм, который буферизует выделение текста, как только пользователь отпускает мышь после выделения текста, так что событие может сработать, и, если что-то сработает, я могу сделать копию выделенного текста в глобальной переменной и обработать ее позже

window.getSelected () работает нормально, когда я тестировал с отдельным кодом тестирования, но при использовании с моим расширением, когда я вызываю контекстное меню, я не смог получить фактический выделенный текст

выделенный текст какя вижу в документации будет текст и HTML

предложения пласе ...


Здесь я вставил то, что я делаю.когда я нажимаю «Сохранить в напоминание слова», я получаю пустую строку

enter image description here

, и вот остаток кода


<script>
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {


    switch(request.message)
    {
        case 'getSelection':
            sendResponse({data: window.getSelection().toString()});
        break;

        case 'createMenu':
            seecon();
            break;

        default:
            sendResponse({data: 'Invalid arguments'});
        break;
    }
});

function conOnClick(info,tab)
{

/*
    chrome.extension.sendRequest(tab.id, {method: 'getSelection'}, function(response){
        alert(response.data);
    });
*/  
}


//function seecon()
{
var contexts = ["selection"];
for (var i = 0; i < contexts.length; i++) {
  var context = contexts[i];
  var title = "Save to Word Reminder";
  var id = chrome.contextMenus.create({"title": title, "contexts":[context],
                                       "onclick": conOnClick});

}

}



</script>

Ответы [ 2 ]

5 голосов
/ 30 января 2012

Я бы просто установил событие mouseUp в документе, а затем проверил, есть ли какой-либо выбор (и если да, отличается ли выбор от предыдущего выбора).

3 голосов
/ 09 февраля 2012

Вы можете прослушать изменения в выделении текста с помощью события selectionchange. Я считаю, что он доступен только в браузерах WebKit.

...