>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Хочу поправить одну функцию в SelectionSK http://forum.mozilla-russia.org/viewtopic.php?id=64615 |
doctord > 20-08-2014 11:27:52 |
Есть такое многофункциональное дополнение, создающее всплывающее контекстное меню по выделении текста. Одной из его дополнительных возможностей является копирование заголовка и адреса страницы по ctrl+c, когда ничего не выделено. Никаких настроек у этой функции нет (с этим вопросом к разработчику обращались на AMO, но он уже давно не обновляет свое дополнение). Вот я и подумал, что можно было бы просто поправить код, но знать бы как. Вроде этот фрагмент отвечает за ctrl+с скрытый текст Выделить код Код:if (preferences_.getBoolPref("ctrl-c-copy")) { // Ctrl+C copies url to the clipboard if there is no selection if (e.ctrlKey && (e.charCode == 67 || e.charCode == 99) && e.target.selectionStart == e.target.selectionEnd && document.commandDispatcher.focusedWindow.getSelec .tion().toString() == "") { nsAsh.selectionsk.utils.copyToClipboard(this_.getPageDetails()); return; } } Может кто подскажет, как сделать, чтобы копировался только URL? |
okkamas_knife > 20-08-2014 11:56:54 |
ищем в дополнении функцию getPageDetails() как более "нежный" вриант |
doctord > 20-08-2014 13:44:19 |
Что-то не выходит. скрытый текст Выделить код Код:if (preferences_.getBoolPref("ctrl-c-copy")) { // Ctrl+C copies url to the clipboard if there is no selection if (e.ctrlKey && (e.charCode == 67 || e.charCode == 99) && e.target.selectionStart == e.target.selectionEnd && document.commandDispatcher.focusedWindow.getSelection().toString() == "") { nsAsh.selectionsk.utils.copyToClipboard(this_.getPageDetails1()); return; } } А в описании функции вот так скрытый текст Выделить код Код:getPageDetails: function() { return window._content.document.title + " (" + document.commandDispatcher.focusedWindow.location + ")"; }, getPageDetails1: function() { return document.commandDispatcher.focusedWindow.location; }, И получаю пустой буфер. Что не так? |
Dumby > 20-08-2014 13:49:07 |
Может просто скрытый текст Выделить код Код://nsAsh.selectionsk.utils.copyToClipboard(this_.getPageDetails()); nsAsh.selectionsk.utils.copyToClipboard(document.commandDispatcher.focusedWindow.location.href); |
okkamas_knife > 20-08-2014 14:12:48 |
doctord пишет
если вариант от Dumby Выделить код Код:getPageDetails1: function() { var url=document.commandDispatcher.focusedWindow.location; alert(url);// это для контроля(потом уберёшь) - при вызове дожен выскочить алерт с урл // если алерт пустой то попробуй заменить на /* Получить адрес текущей страницы 5 вариантов var url=getBrowser().currentURI.spec; var url=getBrowser().contentWindow.location var url=content.location; var url=gBrowser.currentURI.spec; var url=content.document.location; Получить текущее значение адресной строки var url=gURLBar.value; */ return url; }, |
doctord > 20-08-2014 15:54:10 |
Большое спасибо за помощь, вроде все работает как хотелось. Подошел вариант Dumby. Всего то и надо было после document.commandDispatcher.focusedWindow.location дописать .href. |