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
Отсутствует
Только создаётся вкладка в конце всех, как сделать, чтобы она создавалась рядом с текущей?
gBrowser.loadOneTab( submission.uri.spec, {postData: submission.postData, relatedToCurrent: true, inBackground: false, referrerURI: makeURI(content.location.href)} );
Отсутствует
Заменил
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
Отсутствует
Ну тогда хорошо
Добавлено 15-10-2013 21:37:34
вы починили проблему . этот код не сбрсывает иконку.
Как не сбрасывает?
требуется всего лишь кнопка в виде картинки в двух позициях он/офф на статусбаре отключающая/включающая навигационную панель + на 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)
Отсутствует
Как не сбрасывает?
а вот так )) теперь она не пропадает последний ваш код исправил проблему пропадания:
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 ); });
Отредактировано lmiol (15-10-2013 23:31:04)
Отсутствует
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 ); };
Отсутствует
Можно редактировать через userChrome
ща погуглим
Я проверил на твоей сборке и все работает
вы правы мой косяк, действительно изза того что стоял аддон Hide navigation bar не пряталось и дублировало кнопку в статусбаре. (чет я даже не проверил )
кнопка всеже остается на навигационной панели (а можно её убрать оттуда?), и скажем есть возможность сделать чтобы по двойному клику ПКМ на статусбаре кликать вылетит меню от кастом баттонс ?
а также её визуальный характер отличается от остальных кнопок, у неё при наведении есть подсветка чтоли, а также при нажатии вдавливается
вроде все статусбарные не так выглядят, ну всмысле там просто картинка с переключением с одной в другую (как у GM или Javaoff)
Добавлено 16-10-2013 00:11:55
хотя это и не критично, так чисто эстетически
Отредактировано lmiol (16-10-2013 00:15:36)
Отсутствует
кнопка всеже остается на навигационной панели (а можно её убрать оттуда?), и скажем есть возможность сделать
А вот не скажу, потому что это слишком просто!
Добавлено 16-10-2013 00:49:07
а также её визуальный характер отличается от остальных кнопок, у неё при наведении есть подсветка чтоли, а также при нажатии вдавливается
вроде все статусбарные не так выглядят, ну всмысле там просто картинка с переключением с одной в другую (как у 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
скажем есть возможность сделать чтобы по двойному клику ПКМ на статусбаре кликать вылетит меню от кастом баттонс ?
Не понял!
Отредактировано bunda1 (16-10-2013 00:54:28)
Отсутствует
Нашел много чего полезного что возможно даст шанс отказаться от Мenu editor
внешний вид кнопки изменился - спс сейчас буду пикчу думать
скажем есть возможность сделать чтобы по двойному клику ПКМ на статусбаре кликать вылетит меню от кастом баттонс ?
Не понял!
это при условии что получиться спрятать кнопку на панели навигации, тогда нужно же откудато вызвать меню для удаления или редактирования кнопки было бы удобно именно там где она находится в статусбаре.
кстати необязательно полностью убирать кнопку с панели навигации, её можно скрыть и сделать видимой лишь тогда когда вызвал toolbar-context-menu.
Отредактировано lmiol (16-10-2013 01:29:49)
Отсутствует
это при условии что получиться спрятать кнопку на панели навигации, тогда нужно же откудато вызвать меню для удаления или редактирования кнопки было бы удобно именно там где она находится в статусбаре.
Как же трудно тебя иногда понять
И кнопку прятать не надо а надо удалить, а мой код просто положи в кнопку которая открывает настройки или в любую другую.
Добавлено 16-10-2013 01:38:00
Нашел много чего полезного что возможно даст шанс отказаться от Мenu editor
Уроки стилистики (CSS) | Форум Mozilla Россия
Добавлено 16-10-2013 01:42:44
Menuitem hider( Firefox )
Отредактировано bunda1 (16-10-2013 01:42:44)
Отсутствует
Как же трудно тебя иногда понять
зато опыт будет =Р, не знаю правда хорошо это или плохо
И кнопку прятать не надо а надо удалить, а мой код просто положи в кнопку которая открывает настройки или в любую другую.
сори чет совсем туплю
Принял.
зы из контекстного меню пока нагуглил
#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)
Отсутствует
поковырявшись в 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)
Отсутствует
Хотелось бы избавиться от одного расширения, InstantFox Quick Search, нужна то только одна функция, чтобы начинал искать ещё при вводе слова и всё -
https://addons.mozilla.org/ru/firefox/addon/instantfox/?src=external-homepage
может какой код есть для этого.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
Отсутствует
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) }); })();
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 );
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
Попробуй теперъ длинный клик:
// Открывать ссылки в новой вкладке длинным кликом, от 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)
Отсутствует
bunda1
Теперь при перемещении ползунка и при введении кода стало нормально. Спасибо.
Насчёт LOG( e.target.localName ); Если щелкнуть по пустому месту страницы например здесь http://rusfolder.com/37847539
переключается fullscreen, в консоли пишет div, если добавить в исключения то потом нужно выискивать место на странице чтобы переключить fullscreen, так как div довольно много где есть, палка о двух концах, ну да ладно, это не критично. Спасибо ещё раз.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
а возможно сделать так чтобы при двойном левом клике на вот эти места http://img689.imageshack.us/img689/6264/kumz.png где вставлены интервалы, открывалась новая вкладка?
а также вообще реально сделать кнопку которая бы открывала окошко (по размерам скажем как настройки) а содержимое окошка наполнялось файлом с Firefox\components\data.txt
и чтобы была возможность отображать из этого текстового файла по тегам
жирный/курсив и подчеркнутый уже в самом окне. Текст в окне не редактируется но выделяется.
Внизу кнопка Ок.
вот приблизительный вид 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)
Отсутствует
а открытие окна совсем не видишь да?
увидел, но так как я с кодингом не знаком, я пытаюсь разбираться, чтото по очевидному простое, чтото нет
вот чето не пойму как окно прикрутить
Отредактировано lmiol (17-10-2013 20:21:45)
Отсутствует
bunda1
А можно кнопку FullScreen посадить на двойной ПКМ, а то что то у меня никак не ладится долгим левым, ложные срабатывания бывают.
function handleDblClick(e) { if ( e.button == 2 ) BrowserFullScreen(); }; addEventListener("dblclick", handleDblClick, false, gBrowser );
Отсутствует