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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№702615-10-2013 20:48:32

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

Re: Custom Buttons

bunda1, т.е. работать будет только так и никак иначе?
Тогда осталось только

Выделить код

Код:

// поиск текста в текущем поисковике в новой активной странице
gBrowser.selectedTab = gBrowser.addTab("http://www.google.com/search?q=" + sel );

заменить на поиск в текущем поисковике

Добавлено 15-10-2013 21:08:06
Сделал так

Выделить код

Код:

var sel = event.dataTransfer.getData("text/unicode");                              
var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
var submission = ss.currentEngine.getSubmission( sel, null );
gBrowser.loadOneTab( submission.uri.spec, null, null, submission.postData, true, false );

Работает. Спасибо, bunda1!
В результате получилась кнопка
1. При перемещении выделенного текста, искать его в новой вкладке, с помощью текущего поисковика.
2. При перемещении изображения, сохранять его в папку ~/DD.MM.YYYY (DD - текущий день, MM - текущий месяц, YYYY - текущий год).

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

Выделить код

Код:

location == "chrome://browser/content/browser.xul" && (function(event) {  
        var self = arguments.callee; 
        if ( !event ) {
             ["dragstart", "dragover", "drop"].forEach(function(type) { gBrowser.mPanelContainer.addEventListener(type, self, false) });
         
         addDestructor(function() {  
                     ["dragstart", "dragover", "drop"].forEach(function(type) { gBrowser.mPanelContainer.removeEventListener(type, self, false) }); 
                });
                 
              return;
              };
        
        switch (event.type) {
        case "dragstart":
                {
                        self.startPoint = [event.screenX, event.screenY];
                        self.sourceNode = event.target;
                        event.target.localName == "img" && event.dataTransfer.setData("application/x-moz-file-promise-url", event.target.src);
                        break;
                }
        case "dragover":
                {
                        self.startPoint && (Components.classes["@mozilla.org/widget/dragservice;1"].getService(Components.interfaces.nsIDragService).getCurrentSession().canDrop = true);
                        break;
                }
        case "drop":
                {
                        if (self.startPoint && event.target.localName != "textarea" && (!(event.target.localName == "input" && (event.target.type == "text" || event.target.type == "password"))) && event.target.contentEditable != "true") {
                                event.preventDefault();
                                event.stopPropagation();
                                var [subX, subY] = [event.screenX - self.startPoint[0], event.screenY - self.startPoint[1]];
                                var [distX, distY] = [(subX > 0 ? subX : (-subX)), (subY > 0 ? subY : (-subY))];
                                var direction;
                                var t = content.getSelection().toString();
                                if (distX > distY) direction = subX < 0 ? "L" : "R";
                                else direction = subY < 0 ? "U" : "D";                      
                               
                                
                                // Изображения ....
                                if ( event.dataTransfer.types.contains("application/x-moz-file-promise-url")) {
                                          // сохранить изображение или ссылку без запроса на место сохранения
                                          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);
                                          //saveImageURL(event.dataTransfer.getData("application/x-moz-file-promise-url"), 0, 0, 0, 1, null, content.document);
                                          return;
                                     }
                                     
                                // Выделенный текст ....
                                if ( event.dataTransfer.getData("text/unicode") ) { 
                                     var sel = event.dataTransfer.getData("text/unicode");                              
                                          // поиск текста в текущем поисковике в новой активной странице
                                          var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
                                          var submission = ss.currentEngine.getSubmission( sel, null );
                                          gBrowser.loadOneTab( submission.uri.spec, null, null, submission.postData, true, false );
                                          return;
                                     }                                  
                                self.startPoint = 0;
                        }
                }
        }
})();

// Подсказка кнопки ............................................................................
this.tooltipText = "CB drag and go \nЗапускает жести мыши для ЛКМ на странице \nЛ: Редактировать эту кнопку";



Добавлено 15-10-2013 21:11:54
Только создаётся вкладка в конце всех, как сделать, чтобы она создавалась рядом с текущей?

Отредактировано W@ld_Lii (15-10-2013 21:11:54)


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

Отсутствует

 

№702715-10-2013 21:27:24

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

Re: Custom Buttons

W@ld_Lii пишет:

Только создаётся вкладка в конце всех, как сделать, чтобы она создавалась рядом с текущей?

Выделить код

Код:

gBrowser.loadOneTab( submission.uri.spec, {postData: submission.postData, relatedToCurrent: true, inBackground: false, referrerURI: makeURI(content.location.href)} );

Отсутствует

 

№702815-10-2013 21:29:06

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

Re: Custom Buttons

Заменил

Выделить код

Код:

gBrowser.loadOneTab( submission.uri.spec, null, null, submission.postData, true, false );

на

Выделить код

Код:

gBrowser.loadOneTab( submission.uri.spec, {relatedToCurrent: true, inBackground: true} );

Работает!!! УРА!!!

Добавлено 15-10-2013 21:30:52
Нашёл здесь http://forum.mozilla-russia.org/viewtopic.php?id=60215. Спасибо огромное Вам, bunda1, за Вашу помощь и труд!

Отредактировано W@ld_Lii (15-10-2013 21:30:52)


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

Отсутствует

 

№702915-10-2013 21:31:25

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

Re: Custom Buttons

Ну тогда хорошо :)

Добавлено 15-10-2013 21:37:34

lmiol пишет:

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

Как не сбрасывает?


lmiol пишет:

требуется всего лишь кнопка в виде картинки в двух позициях он/офф на статусбаре отключающая/включающая навигационную панель + на F12 клавишу тот же еффект.

Переключить панель навигации

Выделить код

Код:

var navBar = document.getElementById("nav-bar");
var statusBar = document.getElementById("status-bar");

var toggleNavBarBut = document.createElement("toolbarbutton");
toggleNavBarBut.setAttribute("tooltiptext", "Л: Переключить панель навигации");
statusBar.appendChild( toggleNavBarBut );

toggleNavBarBut.onclick = function(e) {
   if ( e.button == 0 ) {
        navBar.collapsed = !navBar.collapsed;
        document.persist( navBar.id, "collapsed");
        }
};

function toggleButtImage() { 
   toggleNavBarBut.image = toolbar.collapsed
   ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg=='
   : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC';
};
toggleButtImage();
navBar.addEventListener("DOMAttrModified", toggleButtImage, false );

window.onkeydown = function(e) { 
   if ( e.keyCode == 123 ) { 
        navBar.collapsed = !navBar.collapsed;
        document.persist( navBar.id, "collapsed");
        }
};

addDestructor(function() {
   navBar.removeEventListener("DOMAttrModified", toggleButtImage, false );
   statusBar.removeChild( toggleNavBarBut );
}); 

Отредактировано bunda1 (15-10-2013 22:34:59)

Отсутствует

 

№703015-10-2013 23:03:20

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

Re: Custom Buttons

Как не сбрасывает?

а вот так =))) теперь она не пропадает =) последний ваш код исправил проблему пропадания:

скрытый текст
if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) {
          e.preventDefault(); 

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

// Создать меню для кнопки ................................
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";

я его уже применил на других кнопках =)


Переключитель нав панели

Выделить код

Код:

var navBar = document.getElementById("nav-bar");
var statusBar = document.getElementById("status-bar");

var toggleNavBarBut = document.createElement("toolbarbutton");
toggleNavBarBut.setAttribute("tooltiptext", "Л: Переключить панель навигации");
statusBar.appendChild( toggleNavBarBut );

toggleNavBarBut.onclick = function(e) {
   if ( e.button == 0 ) {
        navBar.collapsed = !navBar.collapsed;
        document.persist( navBar.id, "collapsed");
        }
};

function toggleButtImage() { 
   toggleNavBarBut.image = toolbar.collapsed
   ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg=='
   : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC';
};
toggleButtImage();
navBar.addEventListener("DOMAttrModified", toggleButtImage, false );

window.onkeydown = function(e) { 
   if ( e.keyCode == 123 ) { 
        navBar.collapsed = !navBar.collapsed;
        document.persist( navBar.id, "collapsed");
        }
};

addDestructor(function() {
   navBar.removeEventListener("DOMAttrModified", toggleButtImage, false );
   statusBar.removeChild( toggleNavBarBut );
}); 


мне друг всегда говорил писать:
как требуется чтобы работало, а не описывать только баги.
из того кода что сейчас:
Баги:
не прячет панель
если покинуть "Настройку панелей инструментов" на закрыть или кнопку "Готово" внизу на статусбаре добавляется еще одна кнопка  http://img542.imageshack.us/img542/1063/qk6f.png
Другое:
По идее кнопки на "Панели навигации" не должно быть а только в статус баре =)

Отредактировано lmiol (15-10-2013 23:31:04)

Отсутствует

 

№703115-10-2013 23:42:58

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

Re: Custom Buttons

lmiol
Я проверил на твоей сборке и все работает:

Выделить код

Код:

var navBar = document.getElementById("nav-bar");
var statusBar = document.getElementById("status-bar");

var toggleNavBarBut = document.createElement("toolbarbutton");
toggleNavBarBut.setAttribute("tooltiptext", "Л: Переключить панель навигации");
statusBar.appendChild( toggleNavBarBut );

toggleNavBarBut.onclick = function(e) {
   if ( e.button == 0 ) {
        navBar.collapsed = !navBar.collapsed;
        document.persist( navBar.id, "collapsed");
        }
};

function toggleButtImage() { 
   toggleNavBarBut.image = toolbar.collapsed
   ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg=='
   : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC';
};
toggleButtImage();
navBar.addEventListener("DOMAttrModified", toggleButtImage, false );

window.onkeydown = function(e) { 
   if ( e.keyCode == 123 ) { 
        navBar.collapsed = !navBar.collapsed;
        document.persist( navBar.id, "collapsed");
        }
};

this.onDestroy = function(reason) {
   navBar.removeEventListener("DOMAttrModified", toggleButtImage, false );
   statusBar.removeChild( toggleNavBarBut );
};

Отсутствует

 

№703216-10-2013 00:11:31

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

Re: Custom Buttons

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

ща погуглим

Я проверил на твоей сборке и все работает

вы правы мой косяк, действительно изза того что стоял аддон Hide navigation bar не пряталось и дублировало кнопку в статусбаре. (чет я даже не проверил :/ )
кнопка всеже остается на навигационной панели (а можно её убрать оттуда?), и скажем есть возможность сделать чтобы  по двойному клику ПКМ на статусбаре кликать вылетит меню от кастом баттонс ?

а также её визуальный характер отличается от остальных кнопок, у неё  при наведении есть подсветка чтоли, а также при нажатии вдавливается :D
вроде все статусбарные не так выглядят, ну всмысле там просто картинка с переключением с одной в другую (как у GM или Javaoff)

Добавлено 16-10-2013 00:11:55
хотя это и не критично, так чисто эстетически =)

Отредактировано lmiol (16-10-2013 00:15:36)

Отсутствует

 

№703316-10-2013 00:48:37

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

Re: Custom Buttons

lmiol пишет:

кнопка всеже остается на навигационной панели (а можно её убрать оттуда?), и скажем есть возможность сделать

А вот не скажу, потому что это слишком просто!

Добавлено 16-10-2013 00:49:07

lmiol пишет:

а также её визуальный характер отличается от остальных кнопок, у неё  при наведении есть подсветка чтоли, а также при нажатии вдавливается :D
вроде все статусбарные не так выглядят, ну всмысле там просто картинка с переключением с одной в другую (как у GM или Javaoff)

Выделить код

Код:

var navBar = document.getElementById("nav-bar");
var statusBar = document.getElementById("status-bar");

var toggleNavBarBut = document.createElement("toolbarbutton");
toggleNavBarBut.style.cssText = "-moz-appearance: none !important; padding: 3px !important; border: none !important; background: transparent !important;";
toggleNavBarBut.setAttribute("tooltiptext", "Л: Переключить панель навигации");
statusBar.appendChild( toggleNavBarBut );

toggleNavBarBut.onclick = function(e) {
   if ( e.button == 0 ) {
        navBar.collapsed = !navBar.collapsed;
        document.persist( navBar.id, "collapsed");
        
        setTimeout(function() { toggleButtImage() }, 50);        
        }
};

function toggleButtImage() { 
   toggleNavBarBut.image = navBar.collapsed
   ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg=='
   : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC';
};
toggleButtImage();

window.onkeydown = function(e) { 
   if ( e.keyCode == 123 ) { 
        navBar.collapsed = !navBar.collapsed;
        document.persist( navBar.id, "collapsed");
        }
};

this.onDestroy = function() {
   statusBar.removeChild( toggleNavBarBut );
};

Добавлено 16-10-2013 00:54:28

lmiol пишет:

скажем есть возможность сделать чтобы  по двойному клику ПКМ на статусбаре кликать вылетит меню от кастом баттонс ?

Не понял!

Отредактировано bunda1 (16-10-2013 00:54:28)

Отсутствует

 

№703416-10-2013 01:26:42

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

Re: Custom Buttons

Нашел много чего полезного что возможно даст шанс отказаться от Мenu editor
внешний вид кнопки изменился - спс =) сейчас буду пикчу думать

скажем есть возможность сделать чтобы  по двойному клику ПКМ на статусбаре кликать вылетит меню от кастом баттонс ?

Не понял!

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

кстати необязательно полностью убирать кнопку с панели навигации, её можно скрыть и сделать видимой лишь тогда когда вызвал toolbar-context-menu.

Отредактировано lmiol (16-10-2013 01:29:49)

Отсутствует

 

№703516-10-2013 01:36:37

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

Re: Custom Buttons

lmiol пишет:

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

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

Добавлено 16-10-2013 01:38:00

lmiol пишет:

Нашел много чего полезного что возможно даст шанс отказаться от Мenu editor

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

Добавлено 16-10-2013 01:42:44
Menuitem hider( Firefox )

Отредактировано bunda1 (16-10-2013 01:42:44)

Отсутствует

 

№703616-10-2013 03:04:53

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

Re: Custom Buttons

Как же трудно тебя иногда понять :(

зато опыт будет =Р, не знаю правда хорошо это или плохо :/

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

сори :| чет совсем туплю

Принял.

зы из контекстного меню пока нагуглил
#toolbar-context-menu menuitem[command="cmd_CustomizeToolbars"] {display: none !important;}

Добавлено 16-10-2013 03:22:30
остальное решение смог найти только:
#toolbar-context-menu menuitem[label="Панель меню"], #toolbar-context-menu menuseparator{display: none !important;}

сохранив в утф8 userChrome.css
сейчас буду ковырять  DOMi =)

Отредактировано lmiol (16-10-2013 03:27:20)

Отсутствует

 

№703716-10-2013 04:38:11

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

Re: Custom Buttons

поковырявшись в DOMi пришел к кое каким заметкам (для меня открытие, так как раньше с этим дело не имел)
если использовать кодировку в userChrome.css  UTF8, то можно использовать следующий код для скрытия определенных пунктов меню
#toolbar-context-menu menuitem[label="Панель меню"], #toolbar-context-menu menuseparator{display: none !important;}
но нельзя использовать его в ANSI кирилица.

а этот код, скрывающий главное меню, наоборот работает в  в ANSI кирилица. и не хочет в UTF8
#toolbar-menubar {display: none !important;}

поковырявшись еще понял что можно использовать код подругому (он оказывается тоже не хочет работать в UTF8, я еще удивлялся почему) и использовать ANSI
#toolbar-menubar, #toolbar-context-menu menuitem[toolbarindex="0"], #toolbar-context-menu menuseparator{display: none !important;}]

Отредактировано lmiol (16-10-2013 04:47:24)

Отсутствует

 

№703816-10-2013 18:58:52

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

Re: Custom Buttons

Хотелось бы избавиться от одного расширения, InstantFox Quick Search, нужна то только одна функция, чтобы начинал искать ещё при вводе слова и всё -
https://addons.mozilla.org/ru/firefox/addon/instantfox/?src=external-homepage
может какой код есть для этого.


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

Отсутствует

 

№703916-10-2013 20:33:04

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

Re: Custom Buttons

villa7
Насчёт поиска из адресной не знаю, но я у себя просто минимизировал панель поиска и теперь он отрывается если нажать snift + z, ну и кучу всего на нём навесил.
http://img820.imageshack.us/img820/4383/v7z8.jpg 
А можно его вообще спрятать.

Отсутствует

 

№704016-10-2013 21:27:42

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

Re: Custom Buttons

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

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

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

Выделить код

Код:

// Открывать ссылки в новой вкладке длинным кликом, от 15.09.2013. ................................
(function func() {
   
   const time = 200;            // время удержания в мс
   const background = false;     // открывать в фоновой вкладке
   const nextToCurrent = true;  // открывать рядом с текущей вкладкой
 
   function handleLongPress(e) {     
      setTimeout(function() { try { func.removeListener() } catch(e){} }, 0)
      
      var lab = XULBrowserWindow.statusTextField.label;      
      if ( e.button || !lab || lab.startsWith("javascript") ) return;

      if ( e.type == "mousedown") { 
           func.timer = setTimeout(function() {
                function c(e) { e.preventDefault(); e.stopPropagation() };
                addEventListener('click', c, true);
                func.removeListener = function() { removeEventListener('click', c, true) }; 
              
                gBrowser.loadOneTab( lab, {relatedToCurrent: nextToCurrent, inBackground: background, referrerURI: makeURI(content.location.href)} );
           }, time );  
           }
      else 
           clearTimeout( func.timer );
   };
   ["mouseup", "mousedown", "dragstart"]
   .forEach(function(type) { addEventListener(type, handleLongPress, true, gBrowser) });

})();


и Fullscreen
скрытый текст

Выделить код

Код:

function handleLongPress(e) { //  LOG( e.originalTarget.localName );
   if ( e.button > 0 ) return

   if ( e.type == 'mousedown' && ["a", "b", "img", "em", "font", "strong", "span", "slider", "thumb", "scrollbarbutton"].indexOf( e.originalTarget.localName ) == -1 ) {      
        
        arguments.callee.timerLongPress = setTimeout(function() {
             
             var sel = document.commandDispatcher.focusedWindow.getSelection().toString(); 

             if ( sel == '' ) {    
                  var theBox = document.commandDispatcher.focusedElement;
                  if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { 
                       var startPos = theBox.selectionStart;
                   var endPos = theBox.selectionEnd;
                   var sel = theBox.value.substring(startPos, endPos);  
                       }          
                  }
             if ( sel !== '' ) return;                       
             
             BrowserFullScreen(); 
        }, 500 ); 
                   
        }
       
   if ( e.type == 'mouseup' || e.type == 'dragstart' ) { window.clearTimeout( arguments.callee.timerLongPress ) };                  
};
addEventListener('mouseup', handleLongPress, false, gBrowser );
addEventListener('mousedown', handleLongPress, false, gBrowser );
addEventListener('dragstart', handleLongPress, false, gBrowser );


на некоторых страницах самопроизвольно срабатывают например здесь так
http://inettools.net/index.php?nav=resizephoto
http://i047.radikal.ru/1310/66/7f207d7f4636t.jpg
а здесь при вводе кода или даже просто при клике по странице переключается Fullscreen
http://rusfolder.com/37847539


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

Отсутствует

 

№704116-10-2013 21:48:31

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

Re: Custom Buttons

Попробуй теперъ длинный клик:

Выделить код

Код:

// Открывать ссылки в новой вкладке длинным кликом, от 16.10.2013. ................................
(function func() {
   
   const time = 500;            // время удержания в мс
   const background = false;    // открывать в фоновой вкладке
   const nextToCurrent = true;  // открывать рядом с текущей вкладкой
 
   function handleLongPress(e) {
      setTimeout(function() { try { func.removeListener() } catch(e){} }, 0)
      
      var lab = XULBrowserWindow.statusTextField.label;      
      if ( e.button || !lab || lab.startsWith("javascript") ) return;

      if ( e.type == "mousedown" && !e.target.className.startsWith("ui-slider-handle") ) { 
           func.timer = setTimeout(function() {
                function c(e) { e.preventDefault(); e.stopPropagation() };
                addEventListener('click', c, true);
                func.removeListener = function() { removeEventListener('click', c, true) }; 
              
                gBrowser.loadOneTab( lab, {relatedToCurrent: nextToCurrent, inBackground: background, referrerURI: makeURI(content.location.href)} );
           }, time );  
           }
      else 
           clearTimeout( func.timer );
   };
   ["mouseup", "mousedown", "dragstart"]
   .forEach(function(type) { addEventListener(type, handleLongPress, true, gBrowser) });

})();

Добавлено 16-10-2013 21:57:17
Попробуй теперъ Fullscreen:

Выделить код

Код:

function handleLongPress(e) {  //LOG( e.target.localName );
   if ( e.button > 0 ) return

   if ( e.type == 'mousedown' && ["a", "b", "img", "em", "font", "strong", "span", "slider", "input", "thumb", "scrollbarbutton"]
                                 .indexOf( e.target.localName ) == -1 ) {      
        
        arguments.callee.timerLongPress = setTimeout(function() {
             
             var sel = document.commandDispatcher.focusedWindow.getSelection().toString(); 

             if ( sel == '' ) {    
                  var theBox = document.commandDispatcher.focusedElement;
                  if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { 
                       var startPos = theBox.selectionStart;
                   var endPos = theBox.selectionEnd;
                   var sel = theBox.value.substring(startPos, endPos);  
                       }          
                  }
             if ( sel !== '' ) return;                       
             
             BrowserFullScreen(); 
        }, 500 ); 
                   
        }
       
   if ( e.type == 'mouseup' || e.type == 'dragstart' ) { window.clearTimeout( arguments.callee.timerLongPress ) };                  
};
addEventListener('mouseup', handleLongPress, false, gBrowser );
addEventListener('mousedown', handleLongPress, false, gBrowser );
addEventListener('dragstart', handleLongPress, false, gBrowser );

Там для исправлений есть LOG( e.target.localName );

Отредактировано bunda1 (16-10-2013 21:58:26)

Отсутствует

 

№704216-10-2013 22:53:45

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

Re: Custom Buttons

bunda1
Теперь при перемещении ползунка и при введении кода стало нормально. Спасибо.
Насчёт LOG( e.target.localName ); Если щелкнуть по пустому месту страницы например здесь http://rusfolder.com/37847539
переключается fullscreen, в консоли пишет div, если добавить в исключения то потом нужно выискивать место на странице чтобы переключить fullscreen, так как div довольно много где есть, палка о двух концах, ну да ладно, это не критично. Спасибо ещё раз.


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

Отсутствует

 

№704317-10-2013 02:16:05

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

Re: Custom Buttons

а возможно сделать так чтобы при двойном левом клике на вот эти места http://img689.imageshack.us/img689/6264/kumz.png где вставлены интервалы, открывалась новая вкладка?

а также вообще реально сделать кнопку которая бы открывала окошко (по размерам скажем как настройки) а содержимое окошка наполнялось файлом с Firefox\components\data.txt
и чтобы была возможность отображать из этого текстового файла по тегам

Выделить код

Код:

[b][/b] [i][/i] [u][/u]

жирный/курсив и подчеркнутый уже в самом окне. Текст в окне не редактируется но выделяется.
Внизу кнопка Ок.
вот приблизительный вид http://img812.imageshack.us/img812/5605/mvlc.png или в такой расцветке http://img703.imageshack.us/img703/8067/d9pd.png
По скрину: там где написано Дополнения написать Справка, а ниже Общая помощь по скриптам и аддонам для QLFirefox

(ЗЫ. окошко нужно в сборке, чтобы расписать для пользователя помощь,  где какой скрипт и как пользоваться, через текстовый файл всегда легко будет редактировать), желательно чтобы поддерживалась русская кодировка (UTF8 или какой там еще можно)
Открывается на ЛКМ

и на этом в принципе всё =) сборка готова

Отредактировано lmiol (17-10-2013 03:17:53)

Отсутствует

 

№704417-10-2013 03:33:57

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

Re: Custom Buttons

okkamas_knife пишет:

lmiolhttp://forum.mozilla-russia.org/viewtop … 91#p576791

куча всего =)
я пока нашел "функция чтения из файла" =)

Отредактировано lmiol (17-10-2013 03:34:15)

Отсутствует

 

№704517-10-2013 19:12:44

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

Re: Custom Buttons

а открытие окна совсем не видишь да?

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

Отредактировано lmiol (17-10-2013 20:21:45)

Отсутствует

 

№704618-10-2013 22:27:03

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

Re: Custom Buttons

bunda1
А можно кнопку FullScreen посадить на двойной ПКМ, а то что то у меня никак не ладится долгим левым, ложные срабатывания бывают.


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

Отсутствует

 

№704718-10-2013 23:30:59

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

Re: Custom Buttons

villa7
А может ЛКМ и ПКМ на странице.

Отсутствует

 

№704819-10-2013 00:01:59

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

Re: Custom Buttons

bunda1
Да на странице.


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

Отсутствует

 

№704919-10-2013 00:17:09

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

Re: Custom Buttons

villa7 пишет:

bunda1
А можно кнопку FullScreen посадить на двойной ПКМ, а то что то у меня никак не ладится долгим левым, ложные срабатывания бывают.

Выделить код

Код:

function handleDblClick(e) {
   if ( e.button == 2 ) BrowserFullScreen();         
};
addEventListener("dblclick", handleDblClick, false, gBrowser );

Отсутствует

 

№705019-10-2013 02:50:16

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

Re: Custom Buttons

bunda1
Спасибо, то что надо.


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

Отсутствует

 

Board footer

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