bunda1
не оно?https://developer.mozilla.org/en-US/doc … kURI%28%29
Странно но ни один метод не хочет отдать адрес.
Добавлено 18-06-2013 04:04:54
Вот теперь работает, надо придумать как тут цикл приделать:
Добавлено 18-06-2013 04:04:59
И как остановить цикл когда закладки закончатся:
for( var i = 0, str = ''; i < 400; i++ ) { try { if ( PlacesUtils.bookmarks.getBookmarkURI(i).spec.substring(0, 6) == 'place:') continue; str += i + ' ' + PlacesUtils.bookmarks.getItemTitle(i) + ' ' + PlacesUtils.bookmarks.getBookmarkURI(i).spec + '\n'; } catch(e) {}; } LOG( str );
Отредактировано bunda1 (18-06-2013 18:52:29)
Отсутствует
Да Quick bookmarks( Firefox 3.6 + ), но можно и жестом мыши.
Спасибо, нужно попробовать, тем более папки стало более комфортно использовать.
Column bookmarks - userstyles.org
Спасибо за код, попользовался, оказалось поразительно удобно, особенно с большим количеством закладок, даже несмотря на горизонтальную очередность. И отлично, что папки открываются тоже в несколько колонок, в них обычно накапливается много всего. Наглядность представления повысилась в несколько раз и не нужно делать лишних движений выискивая нужное, поэтому удивительно что нет полноценного поддерживаемого расширения или CB. Вот сделал несколько примеров 102, 205 и 315 закладок.
Отсутствует
в конфиге есть параметр config.trim_on_minimize (win only)
если его создать и поставить в true то при сворачивании окна освобождают оперативку скидывая всё в своп.
собственно вопрос как вызвать эту функцию без сворачивания окна?
Вряд ли это возможно – «trim_on_minimize» находится только внутри xul.dll.
в симанки менеджер кук
...
как заставить открываться его в отдельном окошке?
var win = window.openDialog("about:data", "_blank", "chrome,all,centerscreen,resizable,dialog=0"); win.addEventListener("load", function initWindow() { win.removeEventListener("load", initWindow, false); win.document.documentElement.setAttribute("persist", "width height screenX screenY sizemode"); win.gDataman.loadView("|cookies"); }, false);
а еще лучше в нижней панели в этой кнопке(внимание кнопка переделана под СМ)
--- a/panel.js +++ b/panel.js @@ -7,7 +7,7 @@ } -this.bottomPanel = function(aURL) { +this.bottomPanel = function(aURL, aCallback) { var prefBranch = "custombuttons.button.bottomPanel." if(!aURL && aURL != "") { @@ -34,10 +34,11 @@ if(gPanel) { - var src = gPanel.firstChild.nextSibling.getAttribute("src"); + var ifr = gPanel.firstChild.nextSibling; + var src = ifr.getAttribute("src"); if(aURL != src) { - gPanel.firstChild.nextSibling.setAttribute("src", aURL); - //gPanel.firstChild.nextSibling.loadURI(aURL); + ifr.setAttribute("src", aURL); + //ifr.loadURI(aURL); } else { custombuttons.setPrefs("dom.disable_open_during_load", false); // gPrefService.setIntPref(prefBranch + "height", gPanel.height); @@ -97,6 +98,14 @@ ifr.setAttribute("contentcontextmenu", "contentAreaContextMenu"); } + if(aCallback) { + ifr.addEventListener("load", function initPanel() { + ifr.removeEventListener("load", initPanel, false); + var win = ifr.contentWindow; + aCallback(win.wrappedJSObject || win); + }, false); + } + custombuttons.setPrefs(prefBranch + "url", aURL); } @@ -123,11 +132,12 @@ //------------------------------------ -function addMenuitem(aLabel, aURL, aNode, aObjString) { +function addMenuitem(aLabel, aURL, aNode, aObjString, aCallback) { var mItem = aNode.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", aLabel); mItem.setAttribute("oncommand", - aObjString + ".bottomPanel('" + aURL + "');"); + aObjString + ".bottomPanel('" + aURL + "', this._callback);"); + mItem._callback = aCallback; } @@ -177,6 +187,9 @@ addMenuitem("Показать исходный код", "view-source:' + content.location.href +'", mPopup, objString); addMenuitem("Открыть файл", "' + this.parentNode.parentNode.getFile() + '", mPopup, objString); addSeparator(mPopup, 0); +addMenuitem("Управление cookies", "about:data", mPopup, objString, function(win) { + win.gDataman.loadView("|cookies"); +}); this.appendChild(mPopup); this.type = "menu";
var brand = document.getElementById("bundle_brand"),appName = brand.getString("brandShortName"); var placesurl; if (appName=="Firefox"){ placesurl = "chrome://browser/content/places/places.xul";}else{ if (appName=="SeaMonkey"){ placesurl = "chrome://communicator/content/bookmarks/bookmarksManager.xul";}else{ alert("Browser "+appName+" unsupported!") } } this.bottomPanel = function(aURL, aCallback) { var prefBranch = "custombuttons.button.bottomPanel." if(!aURL && aURL != "") { try { aURL = custombuttons.getPrefs(prefBranch + "url", false); //aURL = gPrefService.getCharPref(prefBranch + "url"); } catch(ex) { aURL = ""; } } if(aURL == "") return; if(aURL == gURLBar.value && !aURL.match(/^\w+?\:/)) aURL = "http://" + aURL; var panelID = "bottom-panel"; var gPanel = document.getElementById(panelID); var height; try { height = custombuttons.getPrefs(prefBranch + "height", false); // height = gPrefService.getIntPref(prefBranch + "height"); } catch(ex) { height = 400; } if(gPanel) { var ifr = gPanel.firstChild.nextSibling; var src = ifr.getAttribute("src"); if(aURL != src) { ifr.setAttribute("src", aURL); //ifr.loadURI(aURL); } else { custombuttons.setPrefs("dom.disable_open_during_load", false); // gPrefService.setIntPref(prefBranch + "height", gPanel.height); gPanel.parentNode.removeChild(gPanel.previousSibling); gPanel.parentNode.removeChild(gPanel); } } else { var appContent = document.getElementById("appcontent"); var spl = appContent.appendChild(document.createElement("splitter")); spl.setAttribute("collapse", "after"); spl.style.border = "none"; spl.style.borderTop = "1px solid threedhighlight"; spl.setAttribute("onclick", "this.setAttribute('state', '');"); var box = appContent.appendChild(document.createElement("hbox")); box.id = panelID; box.height = height; box.orient = "vertical"; var tbr = box.appendChild(document.createElement("toolbar")); tbr.setAttribute("fullscreentoolbar", true); var spr = tbr.appendChild(document.createElement("spacer")); spr.setAttribute("flex", 1); var btn = tbr.appendChild(document.createElement("toolbarbutton")); btn.style.listStyleImage = "url(chrome://global/skin/icons/Minimize.gif)"; btn.minimize = function() { var gPanel = document.getElementById("bottom-panel"); gPanel.previousSibling.setAttribute("state", "collapsed"); } btn.setAttribute("oncommand", "this.minimize()"); var btc = tbr.appendChild(document.createElement("toolbarbutton")); btc.className = "tabs-closebutton1"; btc.style.listStyleImage = "url(chrome://global/skin/icons/Close.gif)"; btc.closePanel = function() { var gPanel = document.getElementById("bottom-panel"); custombuttons.setPrefs(prefBranch + "height", gPanel.height, false); //gPrefService.setIntPref(prefBranch + "height", gPanel.height); gPanel.parentNode.removeChild(gPanel.previousSibling); gPanel.parentNode.removeChild(gPanel); } btc.setAttribute("oncommand", "this.closePanel()"); var ifr = box.appendChild(document.createElement("browser")); ifr.setAttribute("type", "content"); ifr.setAttribute("flex", 1); ifr.setAttribute("src", aURL); ifr.setAttribute("tooltip", "aHTMLTooltip"); ifr.setAttribute("onclick", "return contentAreaClick(event, true)"); ifr.setAttribute("autocompletepopup", "PopupAutoComplete"); ifr.setAttribute("contextmenu", "contentAreaContextMenu"); ifr.setAttribute("contentcontextmenu", "contentAreaContextMenu"); } if(aCallback) { ifr.addEventListener("load", function initPanel() { ifr.removeEventListener("load", initPanel, false); var win = ifr.contentWindow; aCallback(win.wrappedJSObject || win); }, false); } custombuttons.setPrefs(prefBranch + "url", aURL); } //------------------------------------ this.getFile = function() { try { const nsIFilePicker = Components.interfaces.nsIFilePicker; var fp = Components.classes['@mozilla.org/filepicker;1'] .createInstance(nsIFilePicker); fp.init(window, gNavigatorBundle.getString("openFile"), nsIFilePicker.modeOpen); fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText | nsIFilePicker.filterImages | nsIFilePicker.filterXML | nsIFilePicker.filterHTML); if(fp.show() == nsIFilePicker.returnOK) return fp.fileURL.spec; else return ""; } catch (ex) { } } //------------------------------------ function addMenuitem(aLabel, aURL, aNode, aObjString, aCallback) { var mItem = aNode.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", aLabel); mItem.setAttribute("oncommand", aObjString + ".bottomPanel('" + aURL + "', this._callback);"); mItem._callback = aCallback; } function addSeparator(aNode, aNum) { var separator = aNode.appendChild(document.createElement("menuseparator")); separator.id = "bottom-panel-button-separator" + aNum; } var mPopup = document.createElement("menupopup"); mPopup.setAttribute("oncommand", "event.stopPropagation()"); mPopup.setAttribute("onpopupshowing", "this.parentNode.popupShowing(this)"); objString = "this.parentNode.parentNode"; addMenuitem("about:config", "about:config", mPopup, objString); addMenuitem("Error Console", "chrome://global/content/console.xul", mPopup, objString); addMenuitem("Закладки", placesurl, mPopup, objString); addMenuitem("about:data", "about:data", mPopup, objString); addMenuitem("about:about", "about:about", mPopup, objString); addMenuitem("about:support", "about:support", mPopup, objString); addMenuitem("about:memory", "about:memory", mPopup, objString); addMenuitem("about:plugins", "about:plugins", mPopup, objString); addMenuitem("about:cache", "about:cache", mPopup, objString); addMenuitem("about:cache?device=disk", "about:cache?device=disk", mPopup, objString); addMenuitem("about:cache?device=memory", "about:cache?device=memory", mPopup, objString); addMenuitem("about:cache?device=offline", "about:cache?device=offline", mPopup, objString); addSeparator(mPopup, 0); addMenuitem("Настройки", "chrome://communicator/content/pref/preferences.xul", mPopup, objString); addMenuitem("Дополнения", "chrome://mozapps/content/extensions/extensions.xul?type=extensions", mPopup, objString); addMenuitem("Менеджер Паролей", "chrome://passwordmgr/content/passwordManager.xul", mPopup, objString); addMenuitem("Импорт/Экспорт Паролей", "chrome://passwordexporter/content/pwdexDialog.xul", mPopup, objString); addMenuitem("Управление Cookies", "about:data", mPopup, objString); addMenuitem("DOM Inspector", "chrome://inspector/content/inspector.xul", mPopup, objString); addSeparator(mPopup, 0); addMenuitem("Загрузки", "chrome://mozapps/content/downloads/downloads.xul", mPopup, objString); addMenuitem("История", "chrome://communicator/content/history/history.xul", mPopup, objString); addSeparator(mPopup, 0); var homePages = custombuttons.getPrefs("browser.startup.homepage", false).split("|"); var homePage = homePages[0]; addMenuitem("Домашняя страница", homePage, mPopup, objString); addMenuitem("Текущая страница", "' + content.location.href + '", mPopup, objString); addMenuitem("Показать исходный код", "view-source:' + content.location.href +'", mPopup, objString); addMenuitem("Открыть файл", "' + this.parentNode.parentNode.getFile() + '", mPopup, objString); addSeparator(mPopup, 0); addMenuitem("Управление cookies", "about:data", mPopup, objString, function(win) { win.gDataman.loadView("|cookies"); }); this.appendChild(mPopup); this.type = "menu"; this.orient = "horizontal"; var that = this; this.hideDropMarker = function() { var dropMarker = document.getAnonymousElementByAttribute(that, "class", "toolbarbutton-menu-dropmarker"); if (dropMarker) { dropMarker.setAttribute("hidden", "true"); } else { setTimeout(that.hideDropMarker, 10); } } this.hideDropMarker();
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Ой, вместо
if(aCallback) { ifr.addEventListener("load", function initPanel() { ifr.removeEventListener("load", initPanel, false); var win = ifr.contentWindow; aCallback(win.wrappedJSObject || win); }, false); }
должно быть
if(aCallback) { var win = ifr.contentWindow; win.addEventListener("load", function initPanel() { win.removeEventListener("load", initPanel, false); aCallback(win.wrappedJSObject || win); }, false); }
Но проблема все равно в том, что gDataman.loadView() из chrome://communicator/content/dataman/dataman.js
loadView: function dataman_loadView(aView) { // Set variable, used in initizalization routine. // Syntax: <domain>|<pane> (|<pane> is optional) // Examples: example.com // example.org|permissions // example.org:8888|permissions|add|popup // |cookies // Allowed pane names: // cookies, permissions, preferences, passwords, formdata // Invalid views fall back to the default available ones // Full host names (even including ports) for domain are allowed // Empty domain with a pane specified will only list this data type // Permissions allow specifying "add" and type to prefill the adding field this.viewToLoad = aView.split('|'); if (gDomains.listLoadCompleted) gDomains.loadView(); // Else will call this at the end of loading the list. },
не работает.
Добавлено 19-06-2013 12:38:27
Но можно заменить
на
и, вроде, начинает работать.
Отредактировано Infocatcher (19-06-2013 12:38:27)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Ребята, может кто поможет, есть такой жест - 'R':{name:'Закладки',cmd:function() и такая команда - BookmarksEventHandler.onCommand(event, this.parentNode._placesView); как их состыковать чтобы жестом меню закладок открывалось, сниппеты просматривал, но для меня это темный лес, ни ума, ни знаний не хватает.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
okkamas_knife
То есть в SeaMonkey 2.14
еще работает, а сломали его позже? Прелестно, прелестно.
А то я в 2.17.1 и 23.0a1 проверял.
Отредактировано Infocatcher (20-06-2013 17:10:43)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
единственный глюк который обнаружил это то что переход на куки не срабатывает если нижнее окошко не открывать заново а переключать то бишь открыл консоль а потом не закрывая перешел в куки .. тогда открывается только about:data
И правда.
Вот так, вроде, в обоих случаях работает:
if(aCallback) { ifr.addEventListener("load", function initPanel() { ifr.removeEventListener("load", initPanel, true); var win = ifr.contentWindow; aCallback(win.wrappedJSObject || win); }, true); }
(заменять точно там же)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
А есть ли такая кнопка, добавляющая ссылку/открытую страницу в конкретную папку закладок (без показа диалога) через пункт контекстного меню ссылки/страницы? У этого расширения - Desktop, нет возможности добавления закладки, но есть папка Desktop (откуда и черпаются ссылки) в закладках, было-бы неплохо добавлять туда ссылки через контекстный пункт.
PS: совсем хорошо будет, если ещё и подпункты будут для подпапок фолдера Desktop (которые и выполняют роль папок этого speeddial'а), т.е. чтобы каждый пункт был двухфункционным: нажатие - добавление в конкретную папку, удержание курсора - появление других меню подпапок.
Отредактировано wolwerine (20-06-2013 20:54:37)
Отсутствует
А есть ли такая кнопка, добавляющая ссылку/открытую страницу в конкретную папку закладок
Отсутствует
wolwerine пишетА есть ли такая кнопка, добавляющая ссылку/открытую страницу в конкретную папку закладок
Надо бы через контекстный пункт страницы/ссылки. Перетащить в уже открытую панель закладок вкладку/ссылку я и сам смогу, но открывать панель каждый раз по этому поводу долговато
Отсутствует
Надо бы через контекстный пункт страницы/ссылки.
Отсутствует
wolwerine пишетНадо бы через контекстный пункт страницы/ссылки.
Из главного - не умеет оно добавлять закладки текущей страницы.
Отсутствует
Pony_Smile_Pack пишетwolwerine пишетНадо бы через контекстный пункт страницы/ссылки.
Из главного - не умеет оно добавлять закладки текущей страницы.
Нет, поставить это и ту кнопку. И добавлять текущую страницу в закладки через контекстное меню.
Отсутствует
Нет, поставить это и ту кнопку. И добавлять текущую страницу в закладки через контекстное меню.
Хороший вариант для навигации в fullscreen режиме, когда панель скрыта. Но для каждодневного режима это не быстрее, чем открыть панель вкладок F4 -> перетащить вкладку -> закрыть панель F4 (учитывая нахождение главной папки Desktop в громоздком подменю "Закладки", появление которого ещё надо подождать, а не в корне самого контекстного меню.
PS: нужен только пункт контекстного меню страницы/ссылки. Всё остальное уже перепробовано и является более медленным, поэтому и пишу сюда.
Добавлено 20-06-2013 22:00:32
wolwerine
Quick bookmarks( Firefox 3.6 + )
А она и в не контекстном меню, опять-таки, долговато цельться/тянуться за шорткатом
А меню в любом месте страницы.
Спасибо всем за попытки, буду копать/осваивать и это. Слишком велики мои запросы
Отредактировано wolwerine (20-06-2013 22:05:52)
Отсутствует
wolwerine
//Добавить новый пункт "Сохранить как закладку в папке" в контекстном меню на странице ...................................... (function () { // Объявляем переменные .... var button = this; var folderName = "Новая папка"; // Добавить новый пункт "Сохранить как закладку в папке" в контекстном меню на странице .... (function() { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "context-addBookmark");; menuitem.setAttribute("label", "Сохранить как закладку в папке"); var contextMenu = document.getElementById("contentAreaContextMenu") contextMenu.appendChild( menuitem ); addDestructor(function() { contextMenu.removeChild( menuitem ) }); addEventListener("click", function(e) { if ( gContextMenu.onLink ) { var url = gContextMenu.getLinkURL(); //var url = encodeURIComponent( gContextMenu.getLinkURL() ); var label = gContextMenu.linkText(); } else { var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab); var url = br.webNavigation.currentURI; var label = getDocTitle(); } addBookmark(url, label) }, false, menuitem ); })(); // Получить заголовк страницы или название вкладки .... function getDocTitle() { var docTitle = content.document.title || gBrowser.mCurrentTab.label; // заменить недопустимые символы и удалить лишние пробелы var docTitle = docTitle.replace(/[:.\\\/<>?*|"]+/g, " ") var docTitle = docTitle.replace(/\s\s+/g, " "); return docTitle.substring(0, 50); }; // Добавить текущую вкладку в папку закладок .... function addBookmark(url, label) { var bmsvc = Components.classes ["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService); var rootFolder = bmsvc.toolbarFolder; var f = getChildFolder( rootFolder, folderName ); if ( !f ) { bmsvc.createFolder( rootFolder, folderName, bmsvc.DEFAULT_INDEX ); f = getChildFolder( rootFolder, folderName ); } bmsvc.insertBookmark( f, url, bmsvc.DEFAULT_INDEX, label ); var image = gBrowser.mCurrentTab.image ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/information-16.png"; var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService); alertsService.showAlertNotification( image, label, 'Добавил вкладку в папку закладок: ' + folderName, false, "", null, ""); }; // Получить нужную папку закладок .... function getChildFolder( parentId, title ) { var res = null; try { var hs = Cc ["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsINavHistoryService); var options = hs.getNewQueryOptions(); options.excludeItems = true; var query = hs.getNewQuery(); query.setFolders( [parentId], 1 ); var result = hs.executeQuery( query, options ); var rn = result.root; rn.containerOpen = true; var i, node; for ( i = 0; i < rn.childCount; i++ ){ var node = rn.getChild(i); if ( node.title == title ) { res = node.itemId; break; } } rn.containerOpen = false; } catch(e) {} return res; }; })();
Добавлено 20-06-2013 23:14:07
Страницу сохраняет а вот ссылки не хочет , потому что я не знаю как перекодировать
Добавлено 20-06-2013 23:35:29
Ребята, может кто поможет, есть такой жест - 'R':{name:'Закладки',cmd:function() и такая команда - BookmarksEventHandler.onCommand(event, this.parentNode._placesView); как их состыковать чтобы жестом меню закладок открывалось, сниппеты просматривал, но для меня это темный лес, ни ума, ни знаний не хватает.
var menus = {}, menu = null, anchor = document.getElementById('appmenu-button'); menuName = 'bookmarksMenuPopup', uid = 'myext-'; if(menus[menuName] !== undefined) menu = this.menus[menuName]; else{ let element = document.createElement('popupset'); element.setAttribute('id', uid+menuName+'-set'); menu = document.getElementById(menuName).cloneNode(true); menu.setAttribute('id', uid+menuName); element.appendChild(menu); document.documentElement.appendChild(element); menus[menuName] = menu; } menu.openPopup(anchor,'after_start', 400, 250, true);
Отредактировано bunda1 (20-06-2013 23:35:29)
Отсутствует
bunda1
var menus = {}, menu = null, anchor = document.getElementById('appmenu-button'); menuName = 'bookmarksMenuPopup', uid = 'myext-'; if(menus[menuName] !== undefined) menu = this.menus[menuName]; else{ let element = document.createElement('popupset'); element.setAttribute('id', uid+menuName+'-set'); menu = document.getElementById(menuName).cloneNode(true); menu.setAttribute('id', uid+menuName); element.appendChild(menu); document.documentElement.appendChild(element); menus[menuName] = menu; } menu.openPopup(anchor,'after_start', 400, 250, true);
Отсутствует
bunda1
Ничего себе, сколько кода, а я то думал там пару запятых поставить где надо, это мне если бы даже лоб разбить всё ровно не сделать. Теперь стало то что и хотел, как всегда, спасибо огромное.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
Ребята, может кто поможет, есть такой жест - 'R':{name:'Закладки',cmd:function() как их состыковать чтобы жестом меню закладок открывалось
'R':{name:'Открыть меню закладок',cmd:function(self,event){ var menus = {}, menu = null, anchor = document.getElementById('appmenu-button'); var menuName = 'bookmarksMenuPopup', uid = 'myext-'; if ( menus[menuName] !== undefined ) menu = this.menus[menuName]; else { let element = document.createElement('popupset'); element.setAttribute('id', uid+menuName+'-set'); menu = document.getElementById(menuName).cloneNode(true); menu.setAttribute('id', uid + menuName); element.appendChild( menu ); document.documentElement.appendChild(element); menus[menuName] = menu; } menu.openPopup(anchor,'after_start', event.screenX, event.screenY, true); }},
Отсутствует
bunda1
Подставить готовый код на это у меня ума хватило Спасибо. У меня вот тут другой вопрос возник, может есть для этой кнопки Open Firefox folders and files команда открывать главную папку а не только подпапки.
Иногда возникает необходимость по быстрому сменить профиль, приходится добираться через мой компьютер. Не хотелось бы ставить для этого отдельную кнопку, а так было бы все в куче.
Отредактировано villa7 (22-06-2013 10:40:45)
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
все в куче
Может попробуй прописать абсолютный путь до нужной папки
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EOpen%20Firefox%20folders%20and%20files%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABsAAAAoAAAAFgAAAAAAAAAADggMA0MoOjIXDxQWAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAQEBCgAAADksLCytMDAw4gAAAI0bHBuDKR8lan1IaZfSg7XS+K3f/zwtN2IAAAAAAwIDAwAAAAAAAAAAAAAAAQMDAwADAwMUAgICZUtLS+xgYWH/RURF8W1tbfpQS07/hm99/8Czu/2tsK7/IiMijwAAAAADAgMCAAAAAAAAAAAAAAAAJSUlH1dXV8ROTk7cl5eX/7Gxsfytra3/fX19/UpMS/t2enf7tLe1+7u7u/8lJCSkAAAAGQUFBQABAQECAAAAAAAAAAAfHx8tYGBg8ZiYmP+Li4v9UlJS/pubm/6xsbH+paWl/qWlpf6GhYX+xsjH/1Q9R+JxQV3LRzFAWQAAAAACAQICAAAAAAMDAwNhYWHViIiI/zMzM/xvb2/+ioqK/p2dnf7n5+f+u7u7/pycnP7IyMj+WFBT/HZkb/9JQUeTAAAAAgMDAwESEhIAWlpaj4KCgv9aWlr+SUlJ/pGRkf6RkZH+i4uL/tzc3P6AgID+ysrK/sfHx/5MTk36U1ZU/zc4N4MBAAEBAgICAgkJCQB2dna+lZWV/2lpaf05OTn+bm5u/l9fX/7AwMD++vr6/ru7u/7CwsL+ysrK/lRUVPtkY2T/SEhIaQAAAAACAgIEAAAAAwcHBwBVVVWBqamp/5ubm/qQkJD+ysrK/uDg4P7b29v+0NDQ/sPDw/7Nzc3+WFhY+2xsbP9ISEhiAAAAAAICAgQCAgIFAAAAAFtbW3bKysr/x8fH+vX19f729vb+pKSk/re3t/7FxcX+zc3N/tLS0v5cXFz7dHR0/0hISGIAAAAAAwMDBAICAgQAAAAAMTExdY2Njf91dXX6tLS0/uDg4P65ubn+wsLC/s3Nzf7W1tb+29vb/mBgYPt6enr/S0tLYgAAAAADAwMEAgICBAAAAAAtLS1zd3d3/4qKivqdnZ3+pqam/re3t/7Gxsb+1NTU/t3d3f7f39/+Y2Nj+4CAgP9OTk5iAAAAAAMDAwQCAgIEAAAAAC4uLnN/f3//jIyM+p2dnf6pqan+tra2/sfHx/7Z2dn+6Ojo/u/v7/5sbGz7g4OD/1FRUWIAAAAAAwMDBAICAgQAAAAALy8vc39/f/+JiYn6nZ2d/rCwsP7AwMD+ysrK/sfHx/60tLT+mZmZ/mBgYPuTk5P/UlJSYgAAAAADAwMEAgICBAAAAAAvLy9zhISE/5CQkPmYmJj9i4uL/XZ2dv1lZWX9XFxc/WJiYv14eHj9mpqa+snJyf9RUVFhAAAAAAMDAwQCAgIEAAAAADAwMHRoaGj/SUlJ+z09Pf86Ojr/SEhI/2JiYv99fX3/lpaW/6ysrP+8vLz70tLS/1JSUmIAAAAAAwMDBAEBAQQAAAAAIyMjVzY2Nu8wMDDjS0tL5mFhYedzc3PnfHx85oeHh+WWlpbkqKio5La1tuHNzMzzb29vWAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bconst%20data%20%3D%20%5B%0A%09%5B%22Main%20Folder%22%2C%20%22%u0417%u0414%u0415%u0421%u042C%20%u041F%u0423%u0422%u042C%20%u0414%u041E%20%u0413%u041B%u0410%u0412%u041D%u041E%u0419%20%u041F%u0410%u041F%u041A%u0418%20%28%u0442%u0438%u043F%u0430%20D%3A%5C%5CProgram%20Files%20Portable%5C%5CFirefoxPortable%2023%29%22%2C%20%22chrome%3A//global/skin/icons/warning-16.png%22%5D%2C%0A%09%5B%22Firefox%22%2C%20%22CurProcD%22%2C%20%22chrome%3A//branding/content/icon16.png%22%5D%2C%0A%09%5B%22Profile%22%2C%20%22ProfD%22%2C%20%22chrome%3A//mozapps/skin/profile/profileicon.png%22%5D%2C%0A%09%5B%22Downloads%22%2C%20Application.prefs.getValue%28%22browser.download.dir%22%2C%20%22%22%29%2C%20%22chrome%3A//mozapps/skin/downloads/downloadIcon.png%22%5D%2C%0A%090%2C%0A%09%5B%22Extensions%22%2C%20%22ProfD%5C%5Cextensions%22%2C%20%22chrome%3A//mozapps/skin/extensions/extensionGeneric-16.png%22%5D%2C%0A%09%5B%22Custom%20Buttons%22%2C%20%22ProfD%5C%5Ccustombuttons%22%2C%20%22chrome%3A//custombuttons/skin/cbicon.png%22%5D%2C%0A%09%5B%22Bookmark%20backups%22%2C%20%22ProfD%5C%5Cbookmarkbackups%22%2C%20%22chrome%3A//custombuttons/skin/button.png%22%5D%2C%0A%09%5B%22Search%20plugins%20%28default%29%22%2C%20%22CurProcD%5C%5Csearchplugins%22%2C%20%22chrome%3A//global/skin/icons/Search-glass.png%22%2C%20%220%2C%2016px%2C%2016px%2C%200%22%5D%2C%0A%09%5B%22Search%20plugins%20%28user-defined%29%22%2C%20%22UsrSrchPlugns%22%2C%20%22chrome%3A//global/skin/icons/Search-glass.png%22%2C%20%220%2C%2016px%2C%2016px%2C%200%22%5D%2C%0A%090%2C%0A%09%5B%22Chrome%22%2C%20%22UChrm%22%2C%20%22chrome%3A//global/skin/dirListing/folder.png%22%5D%2C%0A%09%5B%22userChrome.css%22%2C%20%22UChrm%5C%5CuserChrome.css%22%2C%20%22chrome%3A//global/skin/icons/folder-item.png%22%2C%20%220%2C%2016px%2C%2016px%2C%200%22%5D%2C%0A%09%5B%22userContent.css%22%2C%20%22UChrm%5C%5CuserContent.css%22%2C%20%22chrome%3A//global/skin/icons/folder-item.png%22%2C%20%220%2C%2016px%2C%2016px%2C%200%22%5D%0A%5D%3B%0Aconst%20id%20%3D%20_id.replace%28%22custombuttons-button%22%2C%20%22CB-%22%29%3B%0Afunction%20appendNode%28nodeName%2C%20parent%2C%20attrs%29%20%7B%0A%09var%20node%20%3D%20document.createElement%28nodeName%29%3B%0A%09for%20%28var%20attr%20in%20attrs%29%20node.setAttribute%28attr%2C%20attrs%5Battr%5D%29%3B%0A%09return%20parent.appendChild%28node%29%3B%0A%7D%0Athis.popup%20%3D%20appendNode%28%22menupopup%22%2C%20this%2C%20%7B%0A%09id%3A%20id%20+%20%22-popup%22%2C%0A%09position%3A%20%22after_start%22%2C%0A%09oncommand%3A%20%22this.parentNode.openFFF%28event.target.value%29%22%2C%0A%09oncontextmenu%3A%20%22return%20false%22%0A%7D%29%3B%0Adata.forEach%28function%28attrs%2C%20i%29%20%7B%0A%09i++%3B%20if%20%28%21attrs%29%20%7B%0A%09%09appendNode%28%22menuseparator%22%2C%20self.popup%2C%20%7Bid%3A%20id%20+%20%22-menuitem-%22%20+%20i%20+%20%22-separator%22%7D%29%3B%0A%09%09return%3B%0A%09%7D%0A%09var%20menuitem%20%3D%20appendNode%28%22menuitem%22%2C%20self.popup%2C%20%7B%0A%09%09id%3A%20id%20+%20%22-menuitem-%22%20+%20i%2C%0A%09%09class%3A%20%22menuitem-iconic%22%2C%0A%09%09label%3A%20attrs%5B0%5D%2C%0A%09%09value%3A%20attrs%5B1%5D%0A%09%7D%29%3B%0A%09var%20style%20%3D%20%22%22%3B%0A%09if%20%28attrs%5B2%5D%29%20style%20+%3D%20%22list-style-image%3A%20url%28%27%22%20+%20attrs%5B2%5D%20+%20%22%27%29%22%3B%0A%09if%20%28attrs%5B3%5D%29%20style%20+%3D%20%22%3B%20-moz-image-region%3A%20rect%28%22%20+%20attrs%5B3%5D%20+%20%22%29%3B%22%3B%0A%09if%20%28style%29%20menuitem.setAttribute%28%22style%22%2C%20style%29%3B%0A%7D%29%3B%0Athis.openFFF%20%3D%20function%28val%29%20%7B%0A%09if%20%28%21val%29%20return%3B%0A%09var%20root%20%3D%20val.substring%280%2C%20val.indexOf%28%22%5C%5C%22%29%29%20%7C%7C%20val%3B%0A%09if%20%28/%5E%28%5BA-Z%5D%3A%29/.test%28root%29%29%20%7B%0A%09%09var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%09%09file.initWithPath%28val%29%3B%0A%09%7D%20else%20%7B%0A%09%09var%20file%20%3D%20Cc%5B%27@mozilla.org/file/directory_service%3B1%27%5D.getService%28Ci.nsIProperties%29.get%28root%2C%20Ci.nsILocalFile%29%3B%0A%09%09file.initWithPath%28val.replace%28root%2C%20file.path%29%29%3B%0A%09%7D%0A//%09if%20%28file.exists%28%29%29%20file.reveal%28%29%3B%0A%09if%20%28file.exists%28%29%29%20file.launch%28%29%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.popup.openPopup%28this%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отредактировано Dumby (24-06-2013 23:32:57)
Отсутствует
Подставить готовый код на это у меня ума хватило Спасибо.
Тут код немного другой, такой который должен открываться рядом с жестом мыши.
Добавлено 24-06-2013 20:12:39
А чтобы сразу в панель закладок попадать, можешь сделать?
Попробуй:
var menus = {}, menu = null, anchor = document.getElementById('appmenu-button'); var menuName = 'bookmarksMenuPopup', uid = 'myext-'; if ( menus[menuName] !== undefined ) menu = this.menus[menuName]; else { let element = document.createElement('popupset'); element.setAttribute('id', uid+menuName+'-set'); menu = document.getElementById(menuName).cloneNode(true); menu.setAttribute('id', uid + menuName); element.appendChild( menu ); document.documentElement.appendChild(element); menus[menuName] = menu; } menu.openPopup(anchor,'after_start', event.screenX, event.screenY, true);
Отредактировано bunda1 (24-06-2013 20:13:46)
Отсутствует