Мне любопытно, знает ли кто-нибудь, как я могу запустить функцию, если / когда пользователь закончит выделение текста в веб-странице? Я бы хотел, чтобы пользователь мог выделять текст и после небольшой задержки (или сразу на этом этапе это не имеет большого значения) рядом с текстом, который пользователь может щелкнуть, появляется кнопка наложения, и я возвращаюсь и запускаю больше своего кода, основанного на выборе. Это для расширения 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;
Итак, это то, что я придумал, используя предложение Роберта, и мне потребовалось некоторое время, чтобы собрать все в нужном месте, но он отлично работает! Теперь переместим мою кнопку.