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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№700113-10-2013 20:25:32

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

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

Выделить код

Код:

var s = 'network.proxy.type';

function toggleImage() {  
   var state = cbu.getPrefs( s );
   var icon = self.ownerDocument.getAnonymousElementByAttribute( self, "class", "toolbarbutton-icon");
   
   if ( state==0 ) {
        icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC';
        this.checked = false;
        this.tooltipText = "Параметры соединения\nБез прокси";
        return;
        }
   
   if ( state==1 ) {
        icon.src ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII=';
        this.checked = true;
        var pxadr = cbu.getPrefs("network.proxy.http");
        var pxprt = cbu.getPrefs("network.proxy.http_port");
        this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt;
        return;
        }
        
  if ( state==2 ) {
       icon.src ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC';
       this.checked = true;
       var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url")
       this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf;
       return;
       }
       
  if ( state==4 ) {
       icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети";
       return;
       }
  
  if ( state==5 ) {
       icon.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII=';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nСистемные настройки прокси";
       }   
};
this.onload = function() { toggleImage() };
gPrefService.addObserver( s, toggleImage, false );
addDestructor(function() { gPrefService.removeObserver( s, toggleImage, false ) }); 


// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {

     if ( e.target.localName !== 'toolbarbutton' ) return;

     // действие при клике ЛКМ ....
     if ( e.button == 0 ) {
          openConnections();
          };
          
     // действие при клике СКМ ....    
     if ( e.button == 1 ) { 
          var curstate = cbu.getPrefs( s );
          if (curstate==0) cbu.setPrefs(s,1);
          if (curstate==1) cbu.setPrefs(s,2);
          if (curstate==2) cbu.setPrefs(s,4);
          if (curstate==4) cbu.setPrefs(s,5);
          if (curstate==5) cbu.setPrefs(s,0);
          };
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  
          
          if ( !this.lastChild ) { 
               var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
               this.appendChild( cloneMenu );
               };
          this.lastChild.tooltipText = '';
          this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
          }
};


// Функция открывает настройки прокси в окне ................................
function openConnections() {
   var windows = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getEnumerator(null);
   while( windows.hasMoreElements() ) {
          var win = windows.getNext();
          if ( win.document.documentURI == "chrome://browser/content/preferences/connection.xul") {    
               win.focus();
               return;
               }
   };   
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "proxy_settings", "centerscreen, resizable=no");   

   // добавить атрибут "prefwindow"
   win.addEventListener("load", function(e) {
       this.removeEventListener("load", arguments.callee, true); 
       e.target.documentElement.setAttribute("type", "prefwindow");
   }, true);
   
   // закрыть настройки прокси по клику на странице 
   gBrowser.addEventListener("click", function c() {
      this.removeEventListener("click", c );
      try { win.close() } catch(e) {}; 
   });
};


этот код верно?

Отредактировано lmiol (13-10-2013 20:25:57)

Отсутствует

 

№700213-10-2013 20:29:07

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

Re: Custom Buttons

lmiol пишет

этот код верно?

Верно но очень скверно, попробуй:

Выделить код

Код:

setTimeout(function() { toggleImage() }, 1000);

Отредактировано bunda1 (13-10-2013 20:30:02)

Отсутствует

 

№700313-10-2013 20:50:39

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

lmiol пишет: этот код верно?Верно но очень скверно, попробуй:Выделить кодКод:setTimeout(function() { toggleImage() }, 1000);
                    Отредактировано bunda1 (Сегодня 18:30:02)

пробовал и так - все равно не хочет
http://www.youtube.com/watch?v=hbtvHDZfhW0

также возвращается иконка после повторного редактирования кнопки

Отредактировано lmiol (13-10-2013 20:53:05)

Отсутствует

 

№700413-10-2013 21:57:45

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

Re: Custom Buttons

Ferguss114 пишет

Да, так работает, спасибо!
Но почему не работает этот вариант - через присваивание свойства onmousedown (или onclick, не суть важно)?
То есть работает, но вместе с нужным действием происходит и дефолтное,  preventDefault() и stopPropagation() не помогают.

:(

Добавлено 13-10-2013 22:00:45

lmiol пишет

пробовал и так - все равно не хочет
также возвращается иконка после повторного редактирования кнопки

Это не может быть!
Что показывает консоль ошибок после настройки панелей?

Добавлено 13-10-2013 22:05:53
Установи иконку для кнопки.

Отредактировано bunda1 (13-10-2013 22:05:53)

Отсутствует

 

№700514-10-2013 00:45:41

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

Это не может быть!
Что показывает консоль ошибок после настройки панелей?

Добавлено Сегодня 20:05:53
Установи иконку для кнопки.

bunda1 пишет

Это не может быть!
Что показывает консоль ошибок после настройки панелей?

Добавлено Сегодня 20:05:53
Установи иконку для кнопки.

иконка установлена (на видео видно)
консоль ошибок чистый

заодно хотел спросить в каком файле самого ФФ находится код с этим меню (Настройки, Панель Меню, Панель Навигации....)
обыскался найти не могу =(

Отредактировано lmiol (14-10-2013 01:53:35)

Отсутствует

 

№700614-10-2013 13:34:08

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

кстати могу дать portable firefox 3.6.28 который я ковыряю дабы вы потестили, если конечно вам охота поковыряться в проблеме =)

Отредактировано lmiol (14-10-2013 13:58:46)

Отсутствует

 

№700714-10-2013 15:29:43

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 24.0

Re: Custom Buttons

bunda1 пишет

Можно заблокировать редактирование для всех кнопок кроме той где это код. Хотя если отключить инициализацию кнопок в настройках Custom Buttons это не поможет :/

Ну или в userChrome.css:

Выделить код

Код:

#custombuttons-contextpopup {
display: none !important;
}

Отсутствует

 

№700814-10-2013 16:15:42

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

Kamui пишет

bunda1 пишет: Можно заблокировать редактирование для всех кнопок кроме той где это код. Хотя если отключить инициализацию кнопок в настройках Custom Buttons это не поможет Ну или в userChrome.css:Выделить кодКод:#custombuttons-contextpopup {
display: none !important;
}

cпс, я как раз исходя из этого догадался что тут мона выключить  http://img407.imageshack.us/img407/3825/bhtu.png
#toolbar-context-menu {display: none !important;}

но если bunda1 подскажет как сделать не пропадание иконок у кнопок Кастом баттонс, то можно будет оставить с этого меню пункт меню Настроек и Панель навигации, а кнопку Панель навигации прикрутить на строку состояния


и знаю что вот этот вопрос не по теме но всёже....
как из ниже описанного кода сделать так чтобы в нем было не его меню а стандартное http://img407.imageshack.us/img407/3825/bhtu.png
(чтобы при отключении/редактировании toolbar-context-menu с этой кнопки также отключалась/менялась менюха )
я пытался подобрать с других кодов но чтото не вышло =)

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

Выделить код

Код:

<window id="main-window">
        <popupset id="secureLoginPopUpSet">
            <tooltip
                id="secureLoginTooltip"
                onpopupshowing="secureLogin.tooltip(event);"
                orient="vertical"
            />
            <menupopup
                id="secureLoginContextmenu"
                onpopupshowing="secureLogin.contextMenu(event);"
                position="after_start">
                <menu
                    id="secureLoginContextAutofillFormsMenu"
                    label="&autofillformsmenu.label;"
                    class="menu-iconic autofillFormsIcon"
                    hidden="true">
                </menu>
                <menuseparator
                    id="secureLoginContextAutofillFormsMenuSeparator"
                    hidden="true"
                />
                <menuitem
                    id="secureLoginOptionsContextItem"
                    label="&menuoptions.label;"
                    oncommand="secureLogin.showDialog('chrome://secureLogin/content/secureLoginOptions.xul');"
                />
                <menuseparator/>
                <menuitem
                    id="secureLoginPasswordsContextItem"
                    label="&menupasswords.label;"
                    oncommand="secureLogin.showPasswordManager();"
                />
                <menuitem
                    id="secureLoginPasswordsExceptionsContextItem"
                    class="minVersion2"
                    label="&menupassexceptions.label;"
                    oncommand="secureLogin.showDialog('chrome://passwordmgr/content/passwordManagerExceptions.xul');"
                />
            </menupopup>
            <menupopup
                id="secureLoginUserSelectionPopup"
                position="after_start"
                onpopuphiding="while(this.hasChildNodes()){this.removeChild(this.firstChild);}"
            />
        </popupset>
    </window>

Отредактировано lmiol (14-10-2013 16:25:51)

Отсутствует

 

№700914-10-2013 17:42:56

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

Можно это

Выделить код

Код:

saveImageURL(event.dataTransfer.getData("application/x-moz-file-promise-url"), 0, 0, 0, 1, null, content.document);

заменить на это https://developer.mozilla.org/en-US/doc … Document() с указанием места сохранения

Выделить код

Код:

var date = new Date().toLocaleFormat("%d.%m.%Y");
var path = "/home/wl/" + date;

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


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№701014-10-2013 18:53:44

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

Re: Custom Buttons

lmiol пишет

кстати могу дать portable firefox 3.6.28 который я ковыряю дабы вы потестили, если конечно вам охота поковыряться в проблеме =)

Архив не открывается, и этот код Вчера 19:25:32 на portable firefox 3.6.28 не должен работать я то думал у тебя FF9. В таких не понятных случаях надо скачивать чистую FF от Localization | PortableApps.com - Portable software for USB, portable and cloud drives и проверять кнопку на нём и сразу станет ясно где проблема в кнопке или в твоей сборке.

Добавлено 14-10-2013 19:03:24

W@ld_Lii пишет

Можно это ...
заменить на это ... с указанием места сохранения

Можно тут 08-05-2011 17:52:05 поковырять, тут есть подобное.

Отредактировано bunda1 (14-10-2013 19:03:24)

Отсутствует

 

№701114-10-2013 19:27:07

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

Выделить код

Код:

// Добавить адрес наверху страницы и открыть диалог сохранения страницы ................................
function savePage() {
     var sURL = gURLBar.value;
     content.document.body.innerHTML = "<table width=100%><tr><td align=left><small><a target=_blank href=" + 
                                        sURL + ">"+ sURL + "</a></small>\n</td></tr></table>" + content.document.body.innerHTML;
     saveDocument(window.content.document);
};

это с диалогом, а нужно без диалога в уже готовую папку.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№701214-10-2013 19:38:17

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

Re: Custom Buttons

W@ld_Lii пишет

это с диалогом, а нужно без диалога в уже готовую папку.

:)
Вот
// Сохранить в указаную папку иконку таба как .ico и без диалога сохранения .........................
function saveFaviconToFolder( faviconName ) { ......

или
// Сохранить ярлык страницы в указанную папку или в последнюю папку сохранения ....................
function saveShortcuts( saveAs ) { .....

Отредактировано bunda1 (14-10-2013 19:38:40)

Отсутствует

 

№701314-10-2013 21:49:25

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

function saveFaviconToFolder( faviconName ) { ...... я так понимаю рисует заново изображение через canvas
function saveShortcuts( saveAs ) { ..... изображение сохраняется через saveFaviconToFolder
Вообще не могу читать этот код. Проще уже взять это http://forum.mozilla-russia.org/viewtop … 64#p518464 и запускать

Выделить код

Код:

#!/bin/bash
DIR=/home/wl/`date '+%d.%m.%Y'`
wget -P "$DIR" "$1"

Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№701414-10-2013 22:07:09

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

Re: Custom Buttons

W@ld_Lii
Самое простое перед сохранением изображения менять папку загрузки на нужную и потом обратно:

Выделить код

Код:

var img = event.dataTransfer.getData("application/x-moz-file-promise-url");
Application.prefs.setValue("browser.download.dir", "C:\\Documents and Settings\\Администратор\\Рабочий стол\\" +(new Date().toLocaleFormat("%d.%m.%Y")) );
saveImageURL( img, 0, 0, 0, 1, null, content.document);

Добавлено 14-10-2013 22:22:37
А если так:

Выделить код

Код:

// Сохранить изображение без запроса двойным правым кликом .... 
function handleDblClick(e) {
  
  if ( e.button == 2 && e.target.localName == 'img' ) {
       
       var path = "C:\\Documents and Settings\\Администратор\\Рабочий стол\\" + new Date().toLocaleFormat("%d.%m.%Y");
       
       const file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);       
       file.initWithPath( path );
       if ( !file.exists() || !file.isDirectory() ) file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
       Application.prefs.setValue("browser.download.dir", path );
       
       setTimeout(function() {
          try { saveImageURL( gContextMenu.imageURL, 0, 0, 0, 1, null, content.document ) }
          catch(e) {};       
          document.getElementById("contentAreaContextMenu").hidePopup() 
       }, 100);
       
       }
};
addEventListener("dblclick", handleDblClick, false, gBrowser );

Добавлено 14-10-2013 22:24:11
Укажи свой путь для path

Отредактировано bunda1 (14-10-2013 22:24:11)

Отсутствует

 

№701514-10-2013 22:26:44

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

bunda1 пишет

и этот код Вчера 19:25:32 на portable firefox 3.6.28 не должен работать я то думал у тебя FF9. В таких не понятных случаях надо скачивать чистую FF от Localization | PortableApps.com - Portable software for USB, portable and cloud drives и проверять кнопку на нём и сразу станет ясно где проблема в кнопке или в твоей сборке.

Архив не открывается,

я перекачал =) открывается.
моя сборка ничем не отличается от чистой, за исключением что я скомпилировал исходники с параметром StrCpy $ADDITIONALPARAMETERS "-no-remote -profile portable"
чтобы можно было открывать этот фф с своим профилем если уже запущен другой фф (может этот параметр еще на чтото влияет), а то раньше открывался тот фф что уже открыт а портебл версия не реагировала.
сейчас попробую с оригинальным файлом проделать всё тоже самое.

Добавлено 14-10-2013 22:44:33
вот сырая с оффсайта http://freefr.dl.sourceforge.net/projec … an.paf.exe

я использовал код без последних правок для изображений и сокращений (может зря конечно) вот что вышло http://youtu.be/GxImzWEzmJk

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

Выделить код

Код:

this.pref = 'network.proxy.type';

this.setState = function() {
   var state = cbu.getPrefs( this.pref );
   if ( state==0 ) {
        this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC';
        this.checked = false;
        this.tooltipText = "Параметры соединения\nБез прокси";
        return;
        }
   
   if ( state==1 ) {
        this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII=';
        this.checked = true;
        var pxadr = cbu.getPrefs("network.proxy.http");
        var pxprt = cbu.getPrefs("network.proxy.http_port");
        this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt;
        return;
        }
        
  if ( state==2 ) {
       this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC';
       this.checked = true;
       var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url")
       this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf;
       return;
       }
       
  if ( state==4 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети";
       return;
       }
  
  if ( state==5 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII=';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nСистемные настройки прокси";
       }   
}
this.PS = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
this.ob = {};
this.ob.observe = this.setState.bind(this);
this.PS.addObserver( this.pref, this.ob, false);
this.setState();


// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {

     if ( e.target.localName !== 'toolbarbutton' ) return;

     // действие при клике ЛКМ ....
     if ( e.button == 0 ) {
          openConnections();
          };
          
     // действие при клике СКМ ....    
     if ( e.button == 1 ) { 
          var curstate = cbu.getPrefs(this.pref);
          if (curstate==0) cbu.setPrefs(this.pref,1);
          if (curstate==1) cbu.setPrefs(this.pref,2);
          if (curstate==2) cbu.setPrefs(this.pref,4);
          if (curstate==4) cbu.setPrefs(this.pref,5);
          if (curstate==5) cbu.setPrefs(this.pref,0);
          };
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  
          
          if ( !this.lastChild ) { 
               var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
               this.appendChild( cloneMenu );
               };
          this.lastChild.tooltipText = '';
          this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
          }
};


// Функция открывает настройки прокси в окне ...............................................................
function openConnections() {
   var windows = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getEnumerator(null);
   while( windows.hasMoreElements() ) {
          var win = windows.getNext();
          if ( win.document.documentURI == "chrome://browser/content/preferences/connection.xul") {    
               win.focus();
               return;
               }
   };   
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "proxy_settings", "centerscreen, resizable=no");   

   // добавить атрибут "prefwindow"
   win.addEventListener("load", function(e) {
       this.removeEventListener("load", arguments.callee, true); // удалить обработчик
       e.target.documentElement.setAttribute("type", "prefwindow");
       }, true);
   
   // закрыть настройки прокси по клику на странице 
   gBrowser.addEventListener("click", function c() {
      this.removeEventListener("click", c );
      try { win.close() } catch(e) {}; 
   });
};

Отредактировано lmiol (14-10-2013 22:52:42)

Отсутствует

 

№701614-10-2013 22:58:00

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

Делаю так

Выделить код

Код:

var img = event.dataTransfer.getData("application/x-moz-file-promise-url");
var path = "/home/wl/" + new Date().toLocaleFormat("%d.%m.%Y");
const file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( path );
if ( !file.exists() || !file.isDirectory() ) file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
Application.prefs.setValue("browser.download.dir", path );
saveImageURL( img, 0, 0, 0, 1, null, content.document);

папка создаётся, а вот изображение не сохраняет.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№701714-10-2013 23:04:58

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

я прекрасно понимаю что никто мне ничего не обязан, все что вы делаете это на добровольной основе: есть желание написал, нет желания забросил в топку.
но сотни игроков ждут удобной сборки =) поэтому я пытаюсь быть таким настойчивым.  (кстати раздача моя здесь, ны бывшем торрентс.ру прожила уже 4 года с копейками, там есть история версий =))

кстати уже который раз убеждаюсь что:

Выделить код

Код:

if ( !this.lastChild ) { 
               var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
               this.appendChild( cloneMenu );
               };
          this.lastChild.tooltipText = '';
          this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
          }

както относится к проблеме, если убрать это меню то в любом из кодов иконка не пропадает, если добвить - пропадает. =) (независимо в каком коде и как прописана иконка)

а может можно это же меню както назначить в userchrome.css? для всех кнопок от кастомбаттонс =)

Отредактировано lmiol (14-10-2013 23:20:06)

Отсутствует

 

№701814-10-2013 23:17:52

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

Re: Custom Buttons

W@ld_Lii пишет

Делаю так
папка создаётся, а вот изображение не сохраняет.

Таймер нужен.

Добавлено 14-10-2013 23:22:03

lmiol пишет

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

А зачем там меню?

Добавлено 14-10-2013 23:43:04

lmiol пишет

кстати уже который раз убеждаюсь что:
..... как то относится к проблеме, если убрать это меню то в любом из кодов иконка не пропадает, если добвить - пропадает. =) (независимо в каком коде и как прописана иконка)

Выделить код

Код:

this.pref = 'network.proxy.type';

this.setState = function() {
   var state = cbu.getPrefs( this.pref );
   if ( state==0 ) {
        this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADJ0lEQVQ4T1WTaUiUURSG7+comi0/+pWFSQu0mXsuk+mMoo5LamSSFUYgSbSQZEWFhhGkA1Y6bZYRtIBUQiUVWVSY2oil5owLCM7iNmNOk/OvVN7OuZTQB5dv5rv3fc457zlXmZiYEP8eRVHEAl9f8WvmV7NK5RPgmPwuZn7PCG8f74klixcFLPT3z5+bmxuYnZ1VvOgBMCfGx8e9RkdHFQIpHs9Pv4cNj/GxtQ0WqwUJWTuwbGM4gkKicbKsAs+bXsHpdKomJycFafxIq/APlcPhUFwul19ldQ3Uumy0GI2ouKTH8uBI5B8oxrEz5VgRHIWIxDTorxowNjbmRRCF3kKQWPCf2tv10O3cg26TGZQJXr99B33tNXR+7QJlh4KiQwhLSscmtQZVl2v5W6DTSeW73S6lpf0zguO02Fd8FN96zSAoXK7vmJ6ehtvtxrBlGFm79iKCANFJGQjZliLLmZqaEsJmtx2pqKqmj8lYHRGHasMNKfR4XHJZLBbk7S/CupgERGl0ErAhToOS02UMNohvJnNzbNp2xKRmSbOqagwk9OBw6Vkk5ebjDZWyPjYRUdp0hGt1MostBAneqqVse03C3NfXFJqYKg3ijTWRajx99gIlZ84jYFMEwjRpiKTILJwHEGxt1FZ86epuEz29prb/6LQZGBqNxqaXOHj8JLQ5eeAAIQkpsgQG8Xkuo7un18oZNGYXFM7T+UBMSqZsodVqlT6UVVYilkrcqNZKMWekyd4Jk9ls4zkwXdRXSyIbJCPQATb1yvVboH0Jud/QgDTqBIsZdOJcORv8gNvobezoQHxGjuzzlr9mcaSgkBgMDA5SS10w9w8gZ3chQsnI6ORMNL//wK1eyRkIHs9HTxoRRv2VEMokMkknow0NDcm5MNTdQSB1iY28UX8PDqdT4SsgbDZZhkIQX74H8Rm5shw+yGXQPvoGBrGZ2sY+1N27z1O4isfYbrerSGxnCM31iEKRvIwdRrAn/4xl8c07d3Gq/AI+tbaDLx+JFdYQYDNT5OJMRkZG+FL50Lu0r7/f1N3To6dp6yS3G212e8OPH1NLOTJd4/n1BxoVaY65Y3qrAAAAAElFTkSuQmCC';
        this.checked = false;
        this.tooltipText = "Параметры соединения\nБез прокси";
        return;
        }
   
   if ( state==1 ) {
        this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAADAklEQVQ4T1VTS0wTURSdaSFIIi5cscEE4kYFQUSEFqSFSAtoqRo0BmIUJX74SAFxgWgwuoAEY0riyshCCCg0BKouWKhRsa0QKW1hSe1MB1q0FFrKry3Xdx+2iZO8zPvcc969557HMv8+juPEIpFoJz4+LsnnW3u6FgicCoV2ILwTFmJjxPsSEvZ+TklOqY/Eu1wucWJiYphZWFgQOZ1OFg9cbjc7/vETNLc9BJnqAhzKlcHBLCmkSuWgud8Oo/oPsLi4mLS0tMQSzB6CZRkyERM2lhwkv3jZC9lFZXBYIofjMiVkyUvgBI7CUkp2NP80dD7TgiAIIiSJZMPgQq/XBzNkCkiXKym4ulYD29vbsLm5CTWN9yCbkOA4IpFB1/Memgkl8Ho97JfvBkjNlcMxAm5ufwzV9U3w1WCEYDAI4XAYJkw/4HpDM2jaHlESzATLoQQOzlHX0dlNNoug8mYdBAIBejOCfT4/+P1rlAT3NjY24OrtBloOajJvn+9hZqy28RzFWThZfAZe9Q1AKBSiAN3YO8grOw+SEjUMjeopAZ4N6EaoJijsjMViZWyzs/r0gmLILFBAvlINDo6nWZRcrKIloS5F5y6B17sCvNMJUkKIwmJ3pn5OTzBmi3UC1cbgHIUKON5JCZQVlXQPh0xVASurq8ALAkhL1bQ7WMa02fILM9CpLl+hgb39g9EShsfeg0RZTknfjIxF9weGR2iX0CdWm82BPrA+6eqmjFU1tfR2rHVrawtWfT56M2qCoq6vr8O1O3epT9Bsdrv9NbYxxmgyQV5pOfVAK2ljjaYVvhlMlAiBhskpuNHYAk0POmgMmg0d6/H8PkBb6Xa7xf1DOsgg/c0o3HVe1a36aCbogYge+EfHou0jTwDLYAlJXN/gW5KJmpaDgZmELDLSSNtySKvRsWh7vBgf4K6ZHA5WEHiWvAmR0WQE1CQiLBLhXKvV+onlgXwkVmARQwjSou8BJzzPsx6PJ5b8W2bn5qzTZnMXcdskUVvn4LjB5eU/+/8DkMVfsY1mV5YrTCYAAAAASUVORK5CYII=';
        this.checked = true;
        var pxadr = cbu.getPrefs("network.proxy.http");
        var pxprt = cbu.getPrefs("network.proxy.http_port");
        this.tooltipText = "Параметры соединения\nРучная настройка, текущий прокси: "+ pxadr + ":" + pxprt;
        return;
        }
        
  if ( state==2 ) {
       this.image ='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACBElEQVQ4T41TTUtbQRSdZ4xpRKVIti2YXTYlIk3sYELeotBVN/6NutKdUOiiCwWlVOiq0IUtiJKFEVwkoFJIm6TafLzEpTGfG30JGN2UxOmcgRueQxcNXPLmzr3nnjlzxmDyx3nI3e32BqlUSni9nic3N7fvb+/uov3+vRjcD1ruUdfU5OTEiX/Gv4T6cHjOEIK5c7mzP6o5Ell4ZJovRmIx/jh5dCyWV9+qeLe2IWbNVyL2elGt9w8OBdVxzo1g8JmLBQKBESRlqGY0IL7/+CmCkZfDNXJYr21+VCCmyb2ch8cUHZpM0zLZrJpIYPr/+octgIz7fD7Gul3bwGSgg2qv1xkGQJDTAcAOx4EerFavvUGCQgcAG+xBD9KFvi+qF1usaJWTJBYdASDOyWDXbrceMEOuWCpZrFypHOgUAaDnMJ3YkT6nv/NpVihZ6f8BIBZophvKF0qXYBDXhQJdZw7fzhzWALHK5RprNpuWUwOwqVarii4ExJ4OiBrsybptXOMoFZIDnTeBZv2IOA6u3ravng6d+G0vrqYhAEgM/mWmT5+/SCNpToQ9v+7sPphGoASCyYlEog8XDp0YCs2N4WEAEclMNqNYkIhgQ9aWzWoy6qLRqDE//9yl3IhXhYcBb9u27W40GiuV83MrXyisS7f9kmrHa/X6TqdzPU11stkjj2n8BTQjJ/nBnlUOAAAAAElFTkSuQmCC';
       this.checked = true;
       var pxcnf = cbu.getPrefs("network.proxy.autoconfig_url")
       this.tooltipText = "Параметры соединения\nАвтонастройка с URL:" + pxcnf;
       return;
       }
       
  if ( state==4 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAC4klEQVQ4T21TW0iTYRjevykmZBddeWOgdGNpmpp5SN0UD1NTSzACk4S6ywsxiDDNMLWJp6Z5wNQLFUQZGMMDGlaW6TJyblOiyLm56aZNwcNV6tP3fjXR8oeXff/+73m+932e5xNEfx+z2SwRi8X77u5uXpub22XbOzvRu7v72Nvfs7q6SE55eJx86+Ptk+fcb7PZJJ6ennui5eVlscViEeiDzW4XRsbeoKCwGNK0TPiGS3E2JBJ+kTLkPyjCK/UgVlZWvFZXVwWGOcGwgogtJIxNYB+8G192IDQuBeciZAiWJiFEJsclqthkTnYhKh6KGiWsVquYSJzdiOhFrVb/uihLQgArJzgoVg5nhTISqvMRUlTW1fNOOMHGhkMY/zgJv3AZiODfCmYk5bV1GBwdRVN7B6QpmbwTGocTmMyme08U1ezPuGMJGlrbUNXQiEdlz/CY1dDICHzDYrgmC8aFetGs3jASlngVlxNSjyV4P/EBypZWbG2uY2z8HXpUKqRk3eLCzup0epFhbk4dEJOAoJhELtbhEYorFEwwMwqKSmCxmFDT2Az18BCi5de4O5+/zEyItDr9BKlNwMzbd7nqUanXoXheD7vNyk+e/KRBESPr6+9HWU0dd4dcmdHqFqkDVdrNHE5Am799/wrj4g/UNbfgYWk5NjbW+OkliiokZWVzMLlEOdEbDCbKgf5pZTVnrH3RhKlpDSeiItWHX48iLTv3YDQCU04obEajsZNsdJnSaHAlOR2BzLL4jBvoHxhAYWkFcvPy0dbZdUQXygmFjRLrcKyd4Vba7XZJd58KgcxfIsnMuYPu3l60M3CEPP0/dyixFHvnFaAxBEbi1tXTyzrJ4OOQJoeT6M9sC2NWU2Ip9nQwXcA/YTKZBKt1SWB3QjylmQJp4hSWiGitVCq3WOTBHrbXKhCGEfgf3AdaLC0tCQ6Hw5X93p+bn9fPaLWVLG3TTG2VyWzuWV//efoIgL38Bkt7NIZJ0esyAAAAAElFTkSuQmCC';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nАвтоматическое определение прокси для этой сети";
       return;
       }
  
  if ( state==5 ) {
       this.image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAACq0lEQVQ4T41TX0hTYRS/d1NMaD34tBcDpZdCmy0tbZmbktNVUzCIivSh3qoH20hS+zNIQsGwCb0o9FCBFSvkktbIPwTmZpHzbndvc93N6zbrKvjnKfV0zlczJAgvHPZ93873+875/X6HX1lZ5HS6HC4Wi2k1Gs1mdnZW7vLyasfq2tqJ9fVN2NjcUDIztHt0ut3j+Xn517k/XzKZ1Or1+g2OAObm5ng6T6ZSvHd0DBxtd8Bsb4D9ZWbYV2yCApMFmltuw6AwBIlEIndhYYHHO7vm5+d5uqxFNB7/yHvc/wSOVJ2CA8cscNhcA8WWWiihqLQxsIPlJ6HzoRsURdEQSLoajjaCIPwsqaqFqy3tcKPtHoYLmtv/hhPXDjwrt9VDV08vq4QBLC2p/MdPk1BQZgFh2AtTU1Pbwu/3b+0jkQjLoUqoHQYgx+Rrrs5uPKyCdyPjgJz8N95jDrVDnMxGZ3u5mWDIW2o9A0erT+8IYHhkjHFCxM6IYpALSZJgqKgGY4V1RwBUJRFL6nz5Oj3BBcTgBLF9yFKzI4ChD6NMHWpjOiB+owo89vONDODF60Egoiii0SigxCxkWQZJkkAURZZDEpNPgqGQTD4I3u/qZoglZivUXWiCs5cuQ+tdF6C8EA6H4Y3wFhqarrAwWe3MJ2Q2fOQpyZjhQ6mO2+rAgFUUI7qxshbOXWyEnp5H4HA4wdXxAIzmaijCByiHzEaOVdXve5mUqVRK+/yVB4pQXwMm3bzV+o+Uff19SJ6VtUqOJdunR4DNAoJkPRt4iZXUs3YokSpJRyHKVopSk2PJ9vQwDeBvM8kyryhxHmdC4/P7gDhJE0tAtHa73SvECX6Yq/B0BwEKt+aBFvF4nFdVNRN/nVI4HJwOBLrQbZ+RbY8ciw0sLv7I2XYBN78Ai4uCXaMrRkkAAAAASUVORK5CYII=';
       this.checked = true;
       this.tooltipText = "Параметры соединения\nСистемные настройки прокси";
       }   
}
this.PS = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
this.ob = {};
this.ob.observe = this.setState.bind(this);
this.PS.addObserver( this.pref, this.ob, false);
this.setState();


// Создать меню для кнопки ................................
var node = document.getElementById(_id + "-menuPopup");
if ( node ) node.parentNode.removeChild(node); // блокировать дублирование меню

var cloneMenu = document.getElementById("toolbar-context-menu").cloneNode( true );
var menuPopup = document.getElementById("mainPopupSet").appendChild( cloneMenu );
menuPopup.id = _id + "-menuPopup";


// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {

     if ( e.target.localName !== 'toolbarbutton' ) return;

     // действие при клике ЛКМ ....
     if ( e.button == 0 ) {
          openConnections();
          };
          
     // действие при клике СКМ ....    
     if ( e.button == 1 ) { 
          var curstate = cbu.getPrefs(this.pref);
          if (curstate==0) cbu.setPrefs(this.pref,1);
          if (curstate==1) cbu.setPrefs(this.pref,2);
          if (curstate==2) cbu.setPrefs(this.pref,4);
          if (curstate==4) cbu.setPrefs(this.pref,5);
          if (curstate==5) cbu.setPrefs(this.pref,0);
          };
     
     // действие при клике ПКМ ....    
     if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
          e.preventDefault();  

          menuPopup.showPopup( this, -1, -1, "popup", "bottomleft", "topleft" );
          }
};


// Функция открывает настройки прокси в окне ...............................................................
function openConnections() {
   var windows = Cc['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getEnumerator(null);
   while( windows.hasMoreElements() ) {
          var win = windows.getNext();
          if ( win.document.documentURI == "chrome://browser/content/preferences/connection.xul") {    
               win.focus();
               return;
               }
   };   
   var win = openDialog("chrome://browser/content/preferences/connection.xul", "proxy_settings", "centerscreen, resizable=no");   

   // добавить атрибут "prefwindow"
   win.addEventListener("load", function(e) {
       this.removeEventListener("load", arguments.callee, true); // удалить обработчик
       e.target.documentElement.setAttribute("type", "prefwindow");
       }, true);
   
   // закрыть настройки прокси по клику на странице 
   gBrowser.addEventListener("click", function c() {
      this.removeEventListener("click", c, false );
      try { win.close() } catch(e) {}; 
   }, false );
};

Кстати настройки прокси можно закрыть кликом на странице.

Отредактировано bunda1 (14-10-2013 23:44:45)

Отсутствует

 

№701914-10-2013 23:51:32

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

добавил

Выделить код

Код:

var img = event.dataTransfer.getData("application/x-moz-file-promise-url");
var path = "/home/wl/" + new Date().toLocaleFormat("%d.%m.%Y");
const file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( path );
if ( !file.exists() || !file.isDirectory() ) file.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0777);
Application.prefs.setValue("browser.download.dir", path );
setTimeout(function() { saveImageURL( img, 0, 0, 0, 1, null, content.document) }, 100);

но эффекта нет


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№702015-10-2013 00:05:41

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

Re: Custom Buttons

W@ld_Lii
У меня работает может дело в линуксе что пишет консоль.

Отсутствует

 

№702115-10-2013 00:36:11

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

А зачем там меню?

вы абсолютно правы что оно в принципе там не нужно, по крайней мере сейчас.
но.... в будущем если будут идеи относительно дополнительных кнопок которые пригодятся именно для игры, то возможность выставлять их как бы нужна.
с самого меню мне нужны только пункты Панель навигации  и настройки. но как я писал выше можно обойтись #toolbar-context-menu {display: none !important;}
но тогда нужно сделать 2 кнопочки на статус бар (1ая открывает/закрывает навигационную панель, вторая открывает настйроки нав панели, но тогда это отдалит пользователя от привычного использования firefox, тогда лучше #toolbar-context-menu {display: none !important;} и сделать лишь кнопку toggle  навигационную панель на статус бар, кстати я нашел аддонHide Navigation barправда в нем много лишнего, требуется всего лишь кнопка в виде картинки в двух позициях он/офф на статусбаре отключающая/включающая навигационную панель + на F12 клавишу тот же еффект.

bunda1 пишет

Кстати настройки прокси можно закрыть кликом на странице.

вы починили проблему =). этот код не сбрсывает иконку.

зы я уже спрашивал выше
вы не вкурсе где в файлах фф находится toolbar-context-menu чтобы можно было отредактировать пункты, я искал искал так и не нашел.
сейчас еще поищу мб удача улыбнется. =)

Отсутствует

 

№702215-10-2013 04:17:50

lmiol
Участник
 
Группа: Members
Зарегистрирован: 29-10-2009
Сообщений: 42
UA: Firefox 9.0

Re: Custom Buttons

AllowMultipleInstances в true

круто =) буду знать
но уже поздно я скомпилил с своими данными с своей картинкой и отпадает возможность держать файлик FirefoxPortable.ini

Отсутствует

 

№702315-10-2013 08:36:33

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

bunda1, какая именно? Если браузера, то молчит.


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№702415-10-2013 19:49:30

W@ld_Lii
Участник №315
 
Группа: Members
Зарегистрирован: 26-04-2009
Сообщений: 306
UA: Firefox 24.0
Веб-сайт

Re: Custom Buttons

bunda1, работает, но только при условии, если не стоит "Всегда выдавать запрос на сохранение".


Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor

Отсутствует

 

№702515-10-2013 20:01:47

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

Re: Custom Buttons

W@ld_Lii пишет

bunda1, работает, но только при условии, если не стоит "Всегда выдавать запрос на сохранение".

Да, ну тогда хорошо.

Добавлено 15-10-2013 20:17:17

lmiol пишет

вы не вкурсе где в файлах фф находится toolbar-context-menu чтобы можно было отредактировать пункты, я искал искал так и не нашел.
сейчас еще поищу мб удача улыбнется. =)

Можно редактировать через userChrome

Уроки стилистики (CSS) | Форум Mozilla Россия

Отредактировано bunda1 (15-10-2013 20:27:10)

Отсутствует

 

Board footer

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