При выделении текста?

Мне любопытно, знает ли кто-нибудь, как я могу запустить функцию, если / когда пользователь закончит выделение текста в веб-странице? Я бы хотел, чтобы пользователь мог выделять текст и после небольшой задержки (или сразу на этом этапе это не имеет большого значения) рядом с текстом, который пользователь может щелкнуть, появляется кнопка наложения, и я возвращаюсь и запускаю больше своего кода, основанного на выборе. Это для расширения Firefox.

Подобный пример, который я могу придумать, был бы похож на IE, где вы можете выбрать текст, а затем вызвать «веб-ускорители». Я на 99% уверен, что знаю, как на самом деле наложить кнопку и получить позицию выделенного текста, но я понятия не имею, как проверить, выбрано ли что-нибудь, без выполнения какого-то бесконечного цикла, который просто кажется ужасной идеей.

РЕДАКТИРОВАТЬ:

//In my overlay.js with the rest of my sidebar code
isTextSelected: function () {   
        var myText = cqsearch.getSelectedText();
        var sidebar = document.getElementById("sidebar");
        var sidebarDoc = sidebar.contentDocument || document;

        var curHighlightedDiv = sidebarDoc.getElementById("testDiv");
        curHighlightedDiv.innerHTML = "Current text selection:" + myText;
    }
};

//In my on firefox load function I added this
document.onmouseup = cqsearch.isTextSelected;

Итак, это то, что я придумал, используя предложение Роберта, и мне потребовалось некоторое время, чтобы собрать все в нужном месте, но он отлично работает! Теперь переместим мою кнопку.

59
задан Brian Tompsett - 汤莱恩 14 July 2019 в 09:40
поделиться