Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№120-08-2014 11:27:52

doctord
Участник
 
Группа: Members
Зарегистрирован: 18-08-2013
Сообщений: 135
UA: Firefox 31.0

Хочу поправить одну функцию в SelectionSK

Есть такое многофункциональное дополнение, создающее всплывающее контекстное меню по выделении текста. Одной из его дополнительных возможностей является копирование заголовка и адреса страницы по 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?

Отсутствует

 

№220-08-2014 11:56:54

okkamas_knife
We are the Borg.       Resistance is futile.
 
Группа: Members
Зарегистрирован: 21-10-2009
Сообщений: 9558
UA: Seamonkey 2.14

Re: Хочу поправить одну функцию в SelectionSK

ищем в дополнении функцию getPageDetails()
в ней смотрим как получается урл и втыкаем это получение вместо this_.getPageDetails() (если там какойто хитрый способ то может не сработать)

как более "нежный" вриант
заменяем this_.getPageDetails() на this_.getPageDetails1()
потом ищем функцию getPageDetails() {...код функции..}
копируем её тамже ниже и переименовываем копию в getPageDetails1(){..код функции..}
после чего устраиваем "разборки" с копией убирая оттуда лишнее чтоб выдавался только урл
было
getPageDetails(){..код функции..}
стало
getPageDetails(){..код функции..}
getPageDetails1(){..код функции - тут и вносим изменения..}


я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3

Отсутствует

 

№320-08-2014 13:44:19

doctord
Участник
 
Группа: Members
Зарегистрирован: 18-08-2013
Сообщений: 135
UA: Firefox 31.0

Re: Хочу поправить одну функцию в SelectionSK

Что-то не выходит.
Сделал вот так

скрытый текст

Выделить код

Код:

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;
    },


И получаю пустой буфер. Что не так?

Отсутствует

 

№420-08-2014 13:49:07

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2273
UA: Firefox 17.0

Re: Хочу поправить одну функцию в SelectionSK

Может просто

скрытый текст

Выделить код

Код:

//nsAsh.selectionsk.utils.copyToClipboard(this_.getPageDetails());
                nsAsh.selectionsk.utils.copyToClipboard(document.commandDispatcher.focusedWindow.location.href);

Отсутствует

 

№520-08-2014 14:12:48

okkamas_knife
We are the Borg.       Resistance is futile.
 
Группа: Members
Зарегистрирован: 21-10-2009
Сообщений: 9558
UA: Seamonkey 2.14

Re: Хочу поправить одну функцию в SelectionSK

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;
    },

я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3

Отсутствует

 

№620-08-2014 15:54:10

doctord
Участник
 
Группа: Members
Зарегистрирован: 18-08-2013
Сообщений: 135
UA: Firefox 31.0

Re: Хочу поправить одну функцию в SelectionSK

Большое спасибо за помощь, вроде все работает как хотелось. Подошел вариант Dumby. Всего то и надо было после document.commandDispatcher.focusedWindow.location дописать .href.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]