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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№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
Сообщений: 4806
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
Сообщений: 4806
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
Сообщений: 4806
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
Сообщений: 4806
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
Сообщений: 4806
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
Сообщений: 4806
UA: Firefox 3.6

Re: Custom Buttons

villa7
Насчёт поиска из адресной не знаю, но я у себя просто минимизировал панель поиска и теперь он отрывается если нажать snift + z, ну и кучу всего на нём навесил.
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
7f207d7f4636t.jpg
а здесь при вводе кода или даже просто при клике по странице переключается Fullscreen
http://rusfolder.com/37847539


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

Отсутствует

 

№704116-10-2013 21:48:31

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4806
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
Сообщений: 4806
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
Сообщений: 4806
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–2020 Mozilla Russia
Язык отображения форума: [Русский] [English]