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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№827611-02-2015 18:53:19

nafanja333
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 35
UA: Firefox 35.0

Re: Custom Buttons

Господа, добрый день.

Когда то была прекрасная кнопка погоды

Weather from gismeteo и на нее похожая с Яндекс погодой.

Очень было удобно.

Потом с обновлением Мазилы, эти кнопки перестали работать.

Есть ли что нибудь похоже - рабочее?

Очень было удобно.

Отредактировано nafanja333 (11-02-2015 18:53:44)

Отсутствует

 

№827711-02-2015 19:14:13

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 38.0

Re: Custom Buttons

okkamas_knife
Спасибо. Вроде уже разобрался со вторым вариантом.

:offtopic: А про остальное...
Проблема в том, что все это требует каких-то базовых знаний о програмировании, коии у меня отсутствуют.
Период моего школьного обучения пришелся на начало бурных девяностых, компьютеры в школе отсутствовали и информатику мы изучали настукивая что-то на деревянных дощечках с выжженой клавиатурой. :) Позднее, когда впервые сел за компьютер, то умудрился вывести из рабочего состояния четыре из восьми имевшихся, на первой же лабораторной. За что получил вольную до конца обучения и получал зачеты автоматом, при условии, что и близко не подойду к аудитории с живыми компьютерами. За эту халяву теперь и расплачиваюсь.

Так что мне надо начинать с какого-нибудь "Програмирование для малышей". :) Но время, время...

Отсутствует

 

№827812-02-2015 10:44:30

nafanja333
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 35
UA: Firefox 35.0

Re: Custom Buttons

okkamas_knife пишет

nafanja333там есть кнопочка - информер

Спасибо за информацию.

Не сочтите за труд подсказать о какой кнопке "информере" идет речь?

Добавлено 12-02-2015 10:49:10
И еще после обновления до версии 35.0.1, стал барахлить "мемори монитор".

Вот что выдает:

4110443044404350440043E0431043C0435043D0430002_zps4bdaaef4.jpg

Как поправить?

Отредактировано nafanja333 (12-02-2015 10:49:44)

Отсутствует

 

№827912-02-2015 14:51:33

beggrr
Участник
 
Группа: Members
Зарегистрирован: 04-02-2014
Сообщений: 128
UA: Firefox 25.0

Re: Custom Buttons

Как мне сделать код

Выделить код

Код:

var clpb = readFromClipboard(); 
var el = content.document.querySelector('[src= >содержимое буфера<]') ;

Можно ли тут обойтись без eval?

Отсутствует

 

№828012-02-2015 19:48:15

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

beggrr пишет

Как мне сделать код без eval?

Попробуй:

Выделить код

Код:

var el = content.document.querySelector('[src= >' + содержимое буфера + '<]');

или

Выделить код

Код:

var el = content.document.querySelector('[src= >' + содержимое буфера.toString() + '<]');

Отсутствует

 

№828112-02-2015 20:49:30

beggrr
Участник
 
Группа: Members
Зарегистрирован: 04-02-2014
Сообщений: 128
UA: Firefox 25.0

Re: Custom Buttons

bunda1 пишет
beggrr пишет

Как мне сделать код без eval?

Попробуй:

Выделить код

Код:

var el = content.document.querySelector('[src= >' + содержимое буфера + '<]');

или

Выделить код

Код:

var el = content.document.querySelector('[src= >' + содержимое буфера.toString() + '<]');

bunda1 я пробовал оба варианта и оба дают ошибку Exception: An invalid or illegal string was specified

Вот выше в посте nafanja333 есть картинка.
Я копирую конец ее адреса — zps4bdaaef4.jpg и вставляю в  код 

Выделить код

Код:

var el = content.document.querySelector('[src$="zps4bdaaef4.jpg"]')

Все нормально, все работает.
А вот если эту же самую строку zps4bdaaef4.jpg я пробую подставить через буфер обмена

Выделить код

Код:

var clpb = readFromClipboard(); 
var el = content.document.querySelector('[src$=' +clpb.toString()+ ']')

То и получается ошибка An invalid or illegal string was specified

Отсутствует

 

№828212-02-2015 23:07:52

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

beggrr

Выделить код

Код:

content.document.querySelector('[src$=' + readFromClipboard().quote() + ']')

Отсутствует

 

№828312-02-2015 23:13:04

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 35.0

Re: Custom Buttons

bunda1
string.quote() грозятся удалить, надо будет менять на CSS.escape(), наверное.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№828413-02-2015 01:16:21

beggrr
Участник
 
Группа: Members
Зарегистрирован: 04-02-2014
Сообщений: 128
UA: Firefox 25.0

Re: Custom Buttons

Я правильно понимаю, что у меня все дело было из-за точки, которая стоит перед расширением файла?
Я попробовал quote()  - работает. А почему пишут что string.quote() во всех браузерах НЕ поддерживается?

И почему в моем случае нельзя использовать escape(readFromClipboard()) ?

Отсутствует

 

№828521-02-2015 14:42:06

Strek
Забанен
 
Группа: Members
Откуда: Украина-->Чернигов
Зарегистрирован: 28-03-2012
Сообщений: 73
UA: Firefox 35.0

Re: Custom Buttons

Назначил горячую клавиши на CB Bookmarks Panel (на Eng-раскладку). Как сделать так, чтобы горячая клавиша работала и в русской раскладке?

Отсутствует

 

№828621-02-2015 15:41:27

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 34.0

Re: Custom Buttons

Strek
Назначить на любой символ.


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№828722-02-2015 00:43:01

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

Strek пишет

Назначил горячую клавиши на CB Bookmarks Panel (на Eng-раскладку). Как сделать так, чтобы горячая клавиша работала и в русской раскладке?

Ну можно такую же кнопку создать с русской буквой или код с e.keyCode написать для конкретных букв который будет работать для обе раскладки. А что за CB Bookmarks Panel.

Отсутствует

 

№828826-02-2015 16:57:33

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 35.0

Re: Custom Buttons

Скажите пожалуйста, а возможно с помощью Custom Buttons реализовать переход по ссылке site1.ru, чтобы рефереров был site2.ru?
спасибо

Отсутствует

 

№828926-02-2015 18:43:21

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 35.0

Re: Custom Buttons

О, спасибо большое!

Отредактировано Sekotka (26-02-2015 18:56:47)

Отсутствует

 

№829026-02-2015 19:27:08

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 35.0

Re: Custom Buttons

Подскажите пожалуйста еще,  беру реф из файла

Выделить код

Код:

/*реф из файла*/
var path = "z:\\work\\ref.txt";

var refs = custombuttonsUtils. readFile (path);
refs = refs. split (/[\r\n]{1,2}/);

if (refs. length != 0)
{
    var ind = Math. floor (Math. random () * refs. length);
}
/*реф из файла*/

var newheader="Referer";
var newheadervalue=(refs[ind]);
var httpRequestObserver =
{
  observe: function(subject, topic, data)
  {
    if (topic == "http-on-modify-request") {
      var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
      httpChannel.setRequestHeader(newheader, newheadervalue, false);
    }
  },

  get observerService() {
    return Cc["@mozilla.org/observer-service;1"]
                     .getService(Ci.nsIObserverService);
  },

  register: function()
  {
    this.observerService.addObserver(this, "http-on-modify-request", false);
  },

  unregister: function()
  {
    this.observerService.removeObserver(this, "http-on-modify-request");
  }
};

httpRequestObserver.register();
gBrowser.selectedTab = gBrowser.addTab ("http://ip.xss.ru/header.php");

Инициализация такая

Выделить код

Код:

MyOwnConverter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].
        createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
MyOwnConverter.charset = "UTF-8";

Получаются все равно кракозябры в реферере там где русские буквы...

Где моя ошибка?

Отредактировано Sekotka (27-02-2015 02:06:31)

Отсутствует

 

№829127-02-2015 12:20:15

god_05
Участник
 
Группа: Members
Зарегистрирован: 15-02-2014
Сообщений: 135
UA: Firefox 31.0

Re: Custom Buttons

Подскажите, почему кнопка Linkification выделяет текстовые ссылки не полностью? Как вылечить?

скрытый текст
2f6e78e2b234c190dba9d703db2146a5.jpg

Отсутствует

 

№829227-02-2015 12:40:49

Sekotka
Участник
 
Группа: Members
Зарегистрирован: 07-02-2010
Сообщений: 44
UA: Firefox 35.0

Re: Custom Buttons

okkamas_knife
Спасибо! А как одной кнопкой запустить сразу 5 других кнопок?

Отсутствует

 

№829327-02-2015 14:04:50

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1224
UA: Firefox 36.0

Re: Custom Buttons

god_05
У меня выделяет.

скрытый текст
Image1_2015-02-27_vs_13-59.png

Отсутствует

 

№829427-02-2015 16:52:12

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 36.0

Re: Custom Buttons

Я так понимаю, nsIWebBrowserPersist.saveURI изменили в FF36 и для работы он теперь требует восемь параметров: https://bugzilla.mozilla.org/show_bug.cgi?id=1124665

Так как "As of Firefox 26, this method should no longer be used from add-on code.", то можно использовать что-нибудь вроде

Выделить код

Код:

function saveFile(sUrl, sFile){
    Cu.import("resource://gre/modules/Downloads.jsm");
    Cu.import("resource://gre/modules/Task.jsm");

    Task.spawn(function(){
        yield Downloads.fetch(sUrl, sFile);
    }).then(null, Cu.reportError);
};

Отсутствует

 

№829507-03-2015 12:54:19

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Firefox 25.0

Re: Custom Buttons

Помогите, очень нужно! Есть букмарклет, который показывает исходный код страницы, а если есть выделение - то  код выделенного фрагмента. Вот сам букмарклет

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

Выделить код

Код:

javascript: (function() {
    var l = '  ';
    var z = {
        img: 1,
        br: 1,
        link: 1,
        input: 1,
        hr: 1,
        meta: 1
    };
    var q = false;
    var r = 0;
    var A = 1;
    var h = window;
    var s = 'width=600, height=260, resizable=yes,scrollbars=yes,location=no';
    var t = function(a) {
        return '<span class=\'tag\'>&lt;' + a + ''
    };
    var u = function(a) {
        return(a ? '/' : '') + '&gt;</span>'
    };
    var v = function(a, b) {
        if(b || z[a.toLowerCase()]) return '';
        return '<span class=\'tag\'>&lt;/' + a + '&gt;</span>'
    };
    var B = function() {
        var a = document.doctype,
            b = '';
        if(a) {
            b = i() + t('!DOCTYPE') + ' <span class=\'attrDoc\'>' + a.nodeName + (a.publicId ? ' PUBLIC \'' + a.publicId + '\'' : '') + (a.systemId ? '</span></span></span></li>' + i() + '<span class=\'tag\'><span class=\'attrDoc\'>' + l + '\'' + a.systemId + '\'' : '') + '</span>' + u() + '</span></li>'
        }
        return b
    };
    var C = function(a) {
        var b = a.attributes,
            f = null,
            c = null,
            d = '',
            g = 0;
        for(; f = b[g]; g++) {
            c = a.getAttribute(f.name) || f.value;
            if(c && !(a.nodeName.toLowerCase() == 'a' && f.name == 'SHAPE' && c == 'rect')) {
                c = c.replace(/</g, '&lt;').replace(/</g, '&lt;').replace(/\t/g, l);
                d += ' <span class=\'attrTitle\'>' + f.name + '</span>=<span class=\'attrValue\'>\x22' + c + '\x22</span> '
            }
        }
        return d
    };
    var m = function(a) {
        return text = a.nodeValue.replace(/[\n\t\r\u00A0]+ */g, '').replace(/ +/g, ' ').replace(/</g, '&lt;').replace(/>/g, '&gt;')
    };
    var D = function(a) {
        var b = 0,
            f = '';
        while(b < a) {
            f += l;
            b++
        }
        return f
    };
    var i = function() {
        var a = r.toString();
        while(a.length < 3) a = '0' + a;
        return '<li class=\'line' + (A && ((r++) & 1) ? ' dark\'' : '\'') + '><span>'
    };
    var w = function(a, b, f) {
        var c = D(b++);
        var d = '';
        switch(a.nodeType) {
            case 1:
                {
                    var g = a.childNodes,
                        j = null,
                        x = 0;
                    var n = (g.length == 0) || (g.length == 1 && g[0].nodeType == 3);
                    var o = q && g.length == 0;
                    var k = i() + c + t(a.nodeName) + C(a) + u(o);
                    if(!n) k += '</span></li>';
                    for(; j = g[x]; x++) {
                        k += w(j, b, !n && j.nodeType == 3)
                    }
                    if(n) {
                        k += (/textarea/i.test(a.nodeName) ? a.value : '') + v(a.nodeName, o) + '</span></li>'
                    } else {
                        k += i() + c + v(a.nodeName, o) + '</span></li>'
                    }
                    return k
                }
            case 3:
                {
                    if((d = m(a)) && f) {
                        return i() + c + d + '</span></li>'
                    } else {
                        return d
                    }
                }
            case 8:
                {
                    d = m(a);
                    return i() + c + '<span class=\'comment\'>&lt;!--' + d + '--&gt;</span></span></li>'
                }
            case 4:
                {
                    d = m(a);
                    return i() + c + '<span class=\'cdata\'>&lt;![CDATA[</span>' + d + '<span class=\'cdata\'>]]&gt;</span></span></li>'
                }
        }
        return a.nodeType
    };
    var E = function(a) {
        var b = '';
        if(!a || !a.getSelection) return b;
        if(a.getSelection() != '') {
            b = a.getSelection();
            h = a;
            s += ',width=screen.width,height=screen.height,left=100,top=100'
        } else {
            for(var f = 0, c; c = a.frames[f]; f++) {
                try {
                    if(b = arguments.callee(c)) break
                } catch(e) {}
            }
        }
        return b
    };
    var F = function(a) {
        var b, f = '';
        if(a) {
            var c = a.getRangeAt(0);
            var d = c.commonAncestorContainer;
            if(d.nodeType == 3 || d.nodeType == 4) d = d.parentNode;
            b = d.cloneNode(false);
            b.appendChild(c.cloneContents());
            var g = c.startContainer;
            var j = c.endContainer;
            if(g != d.firstChild || (g.nodeType == 3 && c.startOffset != 0)) b.insertBefore(document.createTextNode('\u2026'), b.firstChild);
            if(j != d.lastChild || (j.nodeType == 3 && c.endOffset != j.nodeValue.length)) b.appendChild(document.createTextNode('\u2026'))
        } else {
            f = B();
            b = document.documentElement
        };
        f += w(b, 0);
        return f
    };
    var G = E(window);
    q = /[a-z]/.test(h.document.documentElement.nodeName);
    var H = (h.document.getElementsByTagName('title')[0] && h.document.getElementsByTagName('title')[0].text.replace(/</g, '&lt;').replace(/>/g, '&gt;')) || (h.location.protocol + '//' + h.location.host + h.location.pathname);
    var I = '<!DOCTYPE html PUBLIC><html><head><title>Snapshot: ' + H + '</title><style type=\'text/css\'>body{padding:0 5px;margin:0;font-family:sans-serif;font-size:.7em;background-color:#FFF;color:#000;}#content{white-space:pre-wrap}ol{color:#999;}span{color:#000}.tag{color:#05F}.attrTitle{color:#E00}.attrValue{color:#C0C}.attrDoc{color:#800080}.comment{color:green}.line{margin:0;padding:0}.dark{background-color:#FAFAFA}</style></head><body><ol id=\'content\'>' + F(G) + '</ol></body></html>';
    var y = window.open('about:blank', '_blank', s);
    var p = y.document;
    p.write(I);
    p.onkeyup = function(a) {
        if(a.keyCode == 27) y.close()
    };
    p.close()
})()


Я бы хотел его упростить насколько возможно, мне не нужен ни код страницы, ни выделения, нужно только чтобы показывало код дом-узла который я укажу. Пусть это будет скажем, переменная my_node

Сам я тут не справлюсь, а букмарклет мне нравится очень удобным форматированием исходного кода.

Отсутствует

 

№829608-03-2015 01:15:43

MDM
Участник
 
Группа: Members
Откуда: Петрозаводск
Зарегистрирован: 09-04-2008
Сообщений: 42
UA: Firefox 36.0

Re: Custom Buttons

В Firefox 36 сломалась кнопка для сохранения страницы в PNG. https://forum.mozilla-russia.org/viewto … 50#p489050
Кто-нибудь может починить?

Отредактировано MDM (08-03-2015 01:16:30)

Отсутствует

 

№829708-03-2015 02:44:16

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: Custom Buttons

MDM пишет

В Firefox 36 сломалась кнопка для сохранения страницы в PNG. https://forum.mozilla-russia.org/viewto … 50#p489050
Кто-нибудь может починить?

Сохранить всю страницу как  PNG / PDF ( Firefox 3.6 + ) от 08.03.2015.

Отредактировано bunda1 (08-03-2015 02:44:36)

Отсутствует

 

№829808-03-2015 11:17:09

MDM
Участник
 
Группа: Members
Откуда: Петрозаводск
Зарегистрирован: 09-04-2008
Сообщений: 42
UA: Firefox 36.0

Re: Custom Buttons

bunda1, спасибо!

Отсутствует

 

№829909-03-2015 23:48:01

lvlaksim
Участник
 
Группа: Members
Зарегистрирован: 09-03-2015
Сообщений: 11
UA: Firefox 36.0

Re: Custom Buttons

если не очень сложно подскажите пожалуйста код для кнопки при нажатии которой происходило бы:

среди всех ссылок текущей страницы ищется ссылка содержащая в себе определённый текст. По этой ссылке происходит переход

заранее огромное спасибо!

Отредактировано lvlaksim (09-03-2015 23:48:58)

Отсутствует

 

№830010-03-2015 00:39:47

lvlaksim
Участник
 
Группа: Members
Зарегистрирован: 09-03-2015
Сообщений: 11
UA: Firefox 36.0

Re: Custom Buttons

okkamas_knife пишет
lvlaksim пишет

среди всех ссылок текущей страницы ищется ссылка содержащая в себе определённый текст. По этой ссылке происходит переход

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

Выделить код

Код:

var lnks=window.content.document.getElementsByTagName("A");//получаем все ссылки со страницы
// запускаем перебор элементов
 for (var i = 0; i < lnks.length ; i++){ 
 if (lnks[i].textContent){
 if (lnks[i].textContent.indexOf('Обсуждение расширений')!==-1){ //ищем среди них нужную
lnks[i].click();//клик по ссылке если условие выполнено
  }
 }
 }

спасибо за столь быстрый ответ! это нереально круто!
правда нужно было немножко другое - чтобы он искал не по отображаемому тексту, а именно по тексту из которого состоит сама ссылка. В случае с "Обсуждение расширений" нужно чтобы он искал "id=28"

спасибо вам огромное заранее!

Отсутствует

 

Board footer

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