Есть такое многофункциональное дополнение, создающее всплывающее контекстное меню по выделении текста. Одной из его дополнительных возможностей является копирование заголовка и адреса страницы по 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; } }
Отсутствует
ищем в дополнении функцию getPageDetails()
в ней смотрим как получается урл и втыкаем это получение вместо this_.getPageDetails() (если там какойто хитрый способ то может не сработать)
как более "нежный" вриант
заменяем this_.getPageDetails() на this_.getPageDetails1()
потом ищем функцию getPageDetails() {...код функции..}
копируем её тамже ниже и переименовываем копию в getPageDetails1(){..код функции..}
после чего устраиваем "разборки" с копией убирая оттуда лишнее чтоб выдавался только урл
было
getPageDetails(){..код функции..}
стало
getPageDetails(){..код функции..}
getPageDetails1(){..код функции - тут и вносим изменения..}
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
Что-то не выходит.
Сделал вот так
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; },
Отсутствует
Может просто
//nsAsh.selectionsk.utils.copyToClipboard(this_.getPageDetails()); nsAsh.selectionsk.utils.copyToClipboard(document.commandDispatcher.focusedWindow.location.href);
Отсутствует
И получаю пустой буфер. Что не так?
если вариант от 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; },
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
Большое спасибо за помощь, вроде все работает как хотелось. Подошел вариант Dumby. Всего то и надо было после document.commandDispatcher.focusedWindow.location дописать .href.
Отсутствует