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