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

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

№247631-03-2011 15:21:23

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 672
UA: Foxware 0.0

Re: Custom Buttons

iDev.Pi
Может попробуете обьяснить на пальцах,вдруг на будущее пригодится.только в личку пожалуйста,буду признателен.

Отсутствует

 

№247731-03-2011 16:24:08

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 4.0
Веб-сайт

Re: Custom Buttons

Inko7 пишет

ru-board ни разу не получилось...

Значит, ru-board где-то уже есть в закладках.

Inko7 пишет

При нажатии ЛКМ закладки сайтов имеют название отличающееся от закладок тех же сайтов, но по СКМ - может из-за этого?

По СКМ кнопка не пользуется компонентом nsINavBookmarksService, а вызывает функцию браузера, так что да, видимо, поэтому.

Добавлено 31-03-2011 16:31:54

Inko7 пишет

Сделайте пожалуйста, чтобы сохранялись закладки с именами, как сейчас при нажатии СКМ

Но только без проверки на наличие дубликатов, ок ? Надо заменить

Выделить код

Код:

var sebp = StarUI. showEditBookmarkPopup;
    StarUI. showEditBookmarkPopup = function () {};
    PlacesCommandHook. bookmarkCurrentPage (false, f);
    StarUI. showEditBookmarkPopup = sebp;

на

Выделить код

Код:

var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab);
    bmsvc. insertBookmark (f, br. webNavigation. currentURI, bmsvc. DEFAULT_INDEX, "");

Отредактировано Anton (31-03-2011 16:32:14)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№247831-03-2011 17:35:18

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 4.0

Re: Custom Buttons

Anton
:lol: ну я и торможу - тренировался на страницах, которые уже были в закладках!

Но только без проверки на наличие дубликатов, ок ? Надо заменить

ок, теперь абсолютно все страницы классно добавляются! ТО что нужно!!!
Но сейчас, что по ЛКМ или по СКМ названия закладок - это ее адрес страницы! А нужно наоборот, чтобы было заглавие:
например, закладка на текущую страницу должна называться "Custom Buttons | Форум Mozilla Россия"

Отсутствует

 

№247931-03-2011 17:58:34

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 4.0
Веб-сайт

Re: Custom Buttons

Inko7 пишет

Но сейчас, что по ЛКМ или по СКМ названия закладок - это ее адрес страницы!

Вообще-то так было с самого начала.

ps:

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

Выделить код

Код:

this.tooltipText = "Left    => все открытие вкладки в папку закладок\nMiddle => добавление вкладки в папку закладок\nRight   =>  удалить папку закладок\nCtrl+Right =>  контекстное меню ";
var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"].
        getService (Components. interfaces. nsINavBookmarksService);

var folderName = "Новая папка";
var rootFolder = bmsvc. toolbarFolder;

this. onclick = function(event)
{
    var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"].
            getService (Components. interfaces. nsINavBookmarksService);
    if (event. button == 0)
    { // Действие при клике ЛКМ
    function getTabsURIs ()
    {
        var tabList = [];
        var seenURIs = [];
        
        var br, webNav, uri;

        var tabs = getBrowser (). mTabs;
        for (var i = 0; i < tabs. length; ++i)
        {
            br = gBrowser. getBrowserForTab (tabs [i]);
        var webNav = br. webNavigation;
        uri = webNav. currentURI;
        if (uri. spec in seenURIs)
            continue;
        seenURIs [uri. spec] = true;
        LOG ("uri: " + uri + ", label = " + tabs [i]. label);
        tabList. push ({ uri: uri, label: tabs [i]. label });
        }
        return tabList;
    }
    var f = getChildFolder (rootFolder, folderName);
    if (!f)
    {
        bmsvc. createFolder (rootFolder, folderName, bmsvc. DEFAULT_INDEX);
        f = getChildFolder (rootFolder, folderName);
    }
    var uris = getTabsURIs ();
    var ios = Components. classes ["@mozilla.org/network/io-service;1"].
          getService (Components. interfaces. nsIIOService);
    var uri;
    bmsvc. runInBatchMode
    (
        {
        runBatched: function (data)
        {
            for (var i = 0; i < uris. length; i++)
            bmsvc. insertBookmark (f, uris [i]. uri, bmsvc. DEFAULT_INDEX, uris [i]. label);
        }
            },
            null
    );
    }
    else if (event. button == 1)
    { // Действие при клике СКМ
    var f = getChildFolder (rootFolder, folderName);
    if (!f)
    {
        bmsvc. createFolder (rootFolder, folderName, bmsvc. DEFAULT_INDEX);
        f = getChildFolder (rootFolder, folderName);
    }
    var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab);
    bmsvc. insertBookmark (f, br. webNavigation. currentURI, bmsvc. DEFAULT_INDEX, gBrowser. mCurrentTab. label);
//    var sebp = StarUI. showEditBookmarkPopup;
//    StarUI. showEditBookmarkPopup = function () {};
//    PlacesCommandHook. bookmarkCurrentPage (false, f);
//    StarUI. showEditBookmarkPopup = sebp;
    }
    else if (event. button == 2 && !event. ctrlKey && !event. shiftKey && !event. altKey && !event. metaKey)
    { // Действие при клике ПКМ без модификаторов
    var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"].
            getService (Components. interfaces. nsINavBookmarksService);
    var f = getChildFolder (rootFolder, folderName);
    if (f)
        bmsvc. removeItem (f);
    }
};

this. oncontextmenu = function (event)
{
    if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey)
    { // Блокируем контекстное меню при клике ПКМ без модификаторов
    event.preventDefault();
        event.stopPropagation();
    }
};

function getChildFolder (parentId, title)
{
    var res = null;
    try
    {
        var hs = Cc ["@mozilla.org/browser/nav-history-service;1"].
             getService (Ci. nsINavHistoryService);
        var options = hs. getNewQueryOptions ();
        options. excludeItems = true;
        var query = hs. getNewQuery ();
        query. setFolders ([parentId], 1);
        var result = hs. executeQuery (query, options);
        var rn = result. root;
        rn. containerOpen = true;
        var i, node;
        for (i = 0; i < rn. childCount; i++)
        {
            var node = rn. getChild (i);
            if (node. title == title)
            {
                res = node. itemId;
                break;
            }
        }
        rn. containerOpen = false;
    } catch (e) {}
    return res;
}

Отредактировано Anton (31-03-2011 18:05:39)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№248031-03-2011 18:12:15

aborigen
Участник
 
Группа: Members
Зарегистрирован: 31-01-2010
Сообщений: 105
UA: Firefox 3.6

Re: Custom Buttons

Друзья !!! :D Как сделать так что бы страница добавлялась в закладки одним нажатием кнопки в меню закладок !!!:/

Отсутствует

 

№248131-03-2011 18:19:03

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 4.0

Re: Custom Buttons

Anton
Все работает!!! Спасибо за труды и за терпение! :beer:

Anton пишет

Вообще-то так было с самого начала.

не совсем так (по ЛКМ - адрес в имени, по СКМ - заглавие сайта в имени) + была проверка на наличие дубликатов...
Сейчас всё идеально!

Отсутствует

 

№248231-03-2011 18:31:45

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Firefox 4.2

Re: Custom Buttons

Anton
А не поможешь мне с кнопочкой?


mzfx

Отсутствует

 

№248331-03-2011 18:58:12

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

Re: Custom Buttons

Anton и Inko7
Спасибо, так намного лучше. :)

Отсутствует

 

№248431-03-2011 19:56:52

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 4.0
Веб-сайт

Re: Custom Buttons

aborigen пишет

Друзья !!! :D Как сделать так что бы страница добавлялась в закладки одним нажатием кнопки в меню закладок !!!:/

Выделить код

Код:

var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"].
        getService (Components. interfaces. nsINavBookmarksService);

var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab);
bmsvc. insertBookmark (bmsvc. bookmarksMenuFolder, br. webNavigation. currentURI, bmsvc. DEFAULT_INDEX, gBrowser. mCurrentTab. label);

Добавлено 31-03-2011 20:00:33

iDev.Pi пишет

Anton
А не поможешь мне с кнопочкой?

Может, лучше к автору кнопки обратиться ? : )

Добавлено 31-03-2011 20:07:14

iDev.Pi пишет

Кто-нибудь, пожалуйста, облагородьте вот эту кнопку - в ней
1. контестное меню для вещей внутри кнопки - с прозрачным фоном

Надо заменить "popup" на "menupopup", строку для замены искать вместе с кавычками.

2. при удалении какой-то вещи из списка - вылезает ненужное оповещение (хотелось бы его убрать)

Надо заменить

Выделить код

Код:

addMenuItem(context, "Remove Item?",null,this.image, null, "alert(document.popupNode.label); document.popupNode.parentNode.parentNode.removeNode(document.popupNode);");

на

Выделить код

Код:

addMenuItem(context, "Remove Item?",null,this.image, null, "document.popupNode.parentNode.parentNode.removeNode(document.popupNode);");

Добавлено 31-03-2011 20:26:35

iDev.Pi пишет

6. хотелось бы чтоб мидл-клик не закрывал бы контекстное меню кнопки

Он и так не закрывает.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№248531-03-2011 20:50:15

aborigen
Участник
 
Группа: Members
Зарегистрирован: 31-01-2010
Сообщений: 105
UA: Firefox 3.6

Re: Custom Buttons

Anton
Спасибо !!!:beer:Проблема решена !!! :D Осталось убрать пару ненужных кнопок из адресной строки: подписаться на ленту новостей и редактировать эту закладку !!! :whiteflag:

Отсутствует

 

№248631-03-2011 21:20:29

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Firefox 4.2

Re: Custom Buttons

Anton
спасибо, так уже лучше. И в принципе хрен с ним с драг-н-дропом и с папочками (хотя бы на первое время), но можно ли сделать сейв автоматическим раз в 15 минут и при выходе из браузера?


mzfx

Отсутствует

 

№248731-03-2011 21:48:32

aborigen
Участник
 
Группа: Members
Зарегистрирован: 31-01-2010
Сообщений: 105
UA: Firefox 3.6

Re: Custom Buttons

aborigen пишет

Осталось убрать пару ненужных кнопок из адресной строки: подписаться на ленту новостей и редактировать эту закладку !!!

Убрал: :D

скрытый текст
/* Убрать значёк подписаться на ленты новостей */
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

#feed-button {
  display: none !important;
}

/* Убрать значёк добавить страницу в закладки */
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

#star-button {
  display: none !important;
}

Отсутствует

 

№248831-03-2011 21:49:22

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 4.0
Веб-сайт

Re: Custom Buttons

iDev.Pi пишет

но можно ли сделать сейв автоматическим раз в 15 минут и при выходе из браузера?

Мне проще сделать его по добавлению пункта меню.

Удаляем

Выделить код

Код:

addMenuItem(mp, "Save","Save",this.image,null,"this.parentNode.parentNode.save()");

Меняем

Выделить код

Код:

if(evt.target.value==-1) {AddMenuItem();}

на

Выделить код

Код:

if(evt.target.value==-1) {AddMenuItem();save();}

и

Выделить код

Код:

this.save=function()
{
    writeFile(filePath,getData())
};

на

Выделить код

Код:

function save ()
{
    writeFile(filePath,getData())
}

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№248931-03-2011 22:20:44

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Firefox 4.2

Re: Custom Buttons

Anton
благодарю, вот теперь всё comme il faut


mzfx

Отсутствует

 

№249001-04-2011 01:13:16

Chis
Участник
 
Группа: Members
Зарегистрирован: 12-03-2009
Сообщений: 55
UA: Firefox 3.6

Re: Custom Buttons

Кнопку для проверки обновлений  4-ки и плагинов еще не сочинили?

Отсутствует

 

№249101-04-2011 01:32:12

MySh
Кактусогрыз
 
Группа: Extensions
Зарегистрирован: 17-12-2006
Сообщений: 4623
UA: Firefox 4.0

Re: Custom Buttons

Если не сложно, исправьте, пожалуйста, кнопку Add-on's (Firefox) отсюда — не работает правая кнопка мыши.
И заодно пригодилась бы кнопочка с выпадающим меню из двух пунктов: «Открыть папку текущего профиля» и «Открыть папку установки Firefox». Это возможно?

Отсутствует

 

№249201-04-2011 02:01:24

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 4.0
Веб-сайт

Re: Custom Buttons

MySh пишет

кнопочка с выпадающим меню из двух пунктов: «Открыть папку текущего профиля» и «Открыть папку установки Firefox»

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

Выделить код

Код:

/*Initialization Code*/
var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
              onclick="this. parentNode. handleClick (event);">
        <menuitem label="Открыть папку текущего профиля"
              value="ProfD"/>
        <menuitem label="Открыть папку установки Firefox"
              value="CurProcD"/>
      </menupopup>;
this. appendChild (custombuttonsUtils. makeXML (menu));
this. type = "menu";
this. orient = "horizontal";
 
this. handleClick = function (event)
{
    var menuitem = event. target;
    var value = menuitem. getAttribute ("value");
    if (event. button == 0)
    {
        var file = Cc ["@mozilla.org/file/directory_service;1"]. getService (Ci. nsIProperties);
        file = file. get (value, Ci. nsIFile). QueryInterface (Ci. nsILocalFile);
        file. launch ();
        }
    this. open = false;
};


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№249301-04-2011 02:05:57

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 672
UA: Foxware 0.0

Re: Custom Buttons

Присоединяюсь к

Кнопку для проверки обновлений  4-ки и плагинов еще не сочинили?

Отсутствует

 

№249401-04-2011 09:47:14

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 4.0
Веб-сайт

Re: Custom Buttons

Chis
vv07

Вот этот:

Выделить код

Код:

var obj =
{
    notification: "addons-background-update-complete",
    prefName: "extensions.update.enabled",
    extsUpdateEnabled: true,
    
    get os ()
    {
        return Cc ["@mozilla.org/observer-service;1"]. getService (Ci. nsIObserverService);
    },
    
    run: function ()
    {
        Cu. import ("resource://gre/modules/AddonManager.jsm", this);
        this. extsUpdateEnabled = cbu. getPrefs (this. prefName);
        cbu. setPrefs (this. prefName, true);
        this. os. addObserver (this, this. notification, false);
        this. AddonManagerPrivate. backgroundUpdateCheck ();
    },
    
    observe: function (s, t, d)
    {
        if (t == this. notification)
        {
            this. os. removeObserver (this, this. notification);
            cbu. setPrefs (this. prefName, this. extsUpdateEnabled);
            gBrowser. selectedTab = gBrowser. addTab ("about:addons");
            LOG ("done");
        }
    }
};

obj. run ();

запускает поиск обновлений, после завершения обновления открывает вкладку about:addons и переключается на неё.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№249501-04-2011 12:56:47

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 4.0

Re: Custom Buttons

В "Готовых кнопках" (пост №19) есть кнопка для запуска внешнего приложения. Никак не могу заставить ее запускать cmd (или bat) файл расположенный в папке пользовательского профиля  FF.

скрытый текст
/*CODE*/

startProcess("%APPDATA%\\Mozilla\\Firefox\\Profiles\\Inko7.default\\bb-drop-in.cmd",[""]);

function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("Файл не найден", path);
};

Отсутствует

 

№249601-04-2011 16:43:20

MySh
Кактусогрыз
 
Группа: Extensions
Зарегистрирован: 17-12-2006
Сообщений: 4623
UA: Firefox 4.0

Re: Custom Buttons

Anton
Спасибо, кнопка с папками работает. Теперь бы ещё чтобы кнопка с дополнениями могла работать, как было задумано… надежда есть? :rolleyes:

Chis, vv07
Вот здесь ещё есть кнопка для проверки обновлений (и здесь такая же кнопка для Thunderbird), но не факт, что она будет работать в Firefox 4.

Добавлено 01-04-2011 16:45:16
Inko7
А если попробовать заменить строчку

Выделить код

Код:

startProcess("%APPDATA%\\Mozilla\\Firefox\\Profiles\\Inko7.default\\bb-drop-in.cmd",[""]);

на

Выделить код

Код:

startProcess("C:\\WINDOWS\\system32\\cmd.exe",["%APPDATA%\\Mozilla\\Firefox\\Profiles\\Inko7.default\\bb-drop-in.cmd"]);

?

Отсутствует

 

№249701-04-2011 16:47:15

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 672
UA: Foxware 0.0

Re: Custom Buttons

Вот здесь ещё есть кнопка для проверки обновлений

Я опробовал уже ее.Не работает на четверке,потому и отписал тут просьбу.

Отсутствует

 

№249801-04-2011 16:47:37

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 4.0
Веб-сайт

Re: Custom Buttons

Inko7 пишет

Никак не могу заставить ее запускать cmd (или bat) файл расположенный в папке пользовательского профиля  FF.

initWithPath не производит подстановку переменных среды (в данном случае %APPDATA%).

fix:

Выделить код

Код:

var env = Cc ["@mozilla.org/process/environment;1"].
          getService (Ci. nsIEnvironment);

startProcess(env. get ("APPDATA") + "\\Mozilla\\Fir…

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№249901-04-2011 17:07:37

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 4.0

Re: Custom Buttons

Anton
Спасибо! Всё чики-пики!

Отсутствует

 

№250001-04-2011 18:13:52

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 4.0
Веб-сайт

Re: Custom Buttons

MySh пишет

Если не сложно, исправьте, пожалуйста, кнопку Add-on's (Firefox) отсюда — не работает правая кнопка мыши.

http://pastebin.mozilla-russia.org/108556


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

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