Я молодой разработчик и просто пробую свои силы в JavaScript впервые на этой неделе после того, как пришел из фона в Java.Я нашел хорошее дополнение для Firefox, которое позволяет пользователям копировать ссылки из выделенного текста.Он относительно небольшой, но я хотел бы попытаться настроить его так, чтобы он запускался с кнопки, а не (событие правого клика / выбора)
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Рассматриваемое расширение имеет открытый исходный код и лицензировано в соответствии с GNU General Public License,версия 2.0
Я не занимаюсь реверс-инжинирингом чьей-либо тяжелой работы, я просто пытаюсь понять, что делает надстройки галочкой и как применять их работу к чему-то, что не является надстройкой.
Источник доступен здесь: https://addons.mozilla.org/en-US/firefox/files/browse/77730/ (он довольно маленький, всего одна банка, поэтому не бойтесь читать)
Вернемся к делу: это аккуратное маленькое дополнениеэто позволяет пользователям выбирать несколько ссылок на веб-странице и копировать / вставлять выбранные ссылки, щелкнув правой кнопкой мыши текст и выбрав копировать выбранные ссылки.
Итак, 2 части моего вопроса:
Как запустить этот тип надстройки с помощью кнопки вместо щелчка правой кнопкой мыши?(Я предполагаю, что это как-то связано с функцией EOL)
Что мне нужно знать при конвертации надстроек, кроме кросс-браузерной совместимости?Должен ли я обратиться к автору за помощью или это оскорбит?
Любая помощь приветствуется!
* *
Я уверенЯ передаю «правда», чтобы приветствовать без причины.Также довольно уверенно превращаю это в скрипт внутреннего типа. Моя небольшая попытка взять исходник и сделать из него что-то:
HTML:
<input type="button" id="grablinkstest" value="CopyLinks" onclick="welcome(true);"/>
JAVASCRIPT:
function welcome() {
alert("welcome command works");
var focusedWindow = document.commandDispatcher.focusedWindow;
var focusedDoc = document.commandDispatcher.focusedWindow.document;
var argc = gCopyLinks.GetLinks.arguments.length;
var argv = gCopyLinks.GetLinks.arguments;
var reMask;
var selLinks = [];
for( i = 0; i < focusedDoc.links.length; i++) {
if((!bSelected || focusedWindow.getSelection().containsNode(focusedDoc.links[i], true)) && (argc <= 1 || focusedDoc.links[i].href.match(reMask))) {
selLinks[j] = focusedDoc.links[i].href;
j++;
}
}
}