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

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

№930107-01-2016 00:28:49

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Firefox 36.0

Re: Custom Buttons

Поздравляю всех с Рождеством! А возможно средствами Custom Buttons добавить меню, такое же как создает дополнение Speed Start: 802483a0f4e9t.jpg по ссылкам на странице, но чтобы оно предлагало добавить элемент спиддиал при щелчке по закладке, чтобы любую закладку можно было бы быстренько добавить на спиддиал? И какой адрес прописать в

Выделить код

Код:

// Управление закладками, от 25.10.2014. ................................ 
(function func() {
   // страницы где левый клик открывает закладку в текущей странице
   var current = ["about:newtab", "about:blank", "chrome://browser/content/bookmarks/bookmarksPanel.xul", ""];

кнопки↓

Выделить код

Код:

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%3E%u0417%u0430%u043A%u043B%u0430%u0434%u043E%u0447%u043A%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAALAAAALoAAADnXBoAyVwaAMlcGgDJXBoAyVwaAMlcGgDJXBoAyVwaAMlcGgDJRhQApAAAACwAAAASAAAACgAAABYAAADbYGBg/8qXZP/Fkl//xZJf/8WSX//Fkl//xZJf/8WSX//Fkl//ypdk/2gkAMMAAAAWAAAACgAAAAABAQEAAQEBzmJiYv/IlWL/vYpX/7+MWf+/jFn/v4xZ/7+MWf+/jFn/vYpX/8iVYv91MAG9WSUBAAAAAAABAQEAAQEBAAEBAclkZGT/mWYz/7F+S//Bjlv/s4BN/5lmM//Bjlv/wY5b/76LWP/Kl2T/ezQBuns0AQBdKAEAAQEBAAEBAQABAQHFZ2dn/3dekf+IYmL/qndE/4hiYv93XpH/xJFe/8SRXv+/jFn/zZpn/343Abh+NwEAfjcBAAEBAQABAQEAAQEBwWtra/94X5H/aGj//3hfkf9oaP//eF+R/8iVYv/IlWL/v4xZ/9Gea/+COgG3gjoBAII6AQABAQEAAQEBAAEBAb5ubm7/emCS/2dn/P9jY/j/Z2f8/3pgkv/LmGX/y5hl/7+MWf/UoW7/hj0BtYY9AQCGPQEAAQEBAAEBAQABAQG7cnJy/3xik/9nZ/n/Xl7z/2dn+f98YpP/z5xp/8+caf+/jFn/2KVy/4lAAbOJQAEAiUABAAEBAQABAQEAAQEBuHV1df9+ZZT/bGz6/2Nj9f9sbPr/fmWU/9KfbP/Sn2z/votY/9uodf+NQwGyjUMBAI1DAQABAQEAAQEBAAEBAbV5eXn/gGeV/3Bw+/9nZ/f/cHD7/4Bnlf/Wo3D/1qNw/76LWP/frHn/kEUBsJBFAQCQRQEAAQEBAAEBAQABAQGyfHx8/4Npl/91df3/bGz6/3V1/f+DaZf/47B9/+Owff+8iVb/4q98/5JIAa+SSAEAkkgBAAEBAQABAQEAAQEBsH5+fv+Fa5j/eXn+/3Bw/P95ef7/hWuY/7uIVf+7iFX/u4hV/+Sxfv+VSgGtlUoBAJVKAQABAQEAAQEBAAEBAa6AgID/h22Z/319//90dP7/fX3//4dtmf/lsn//5bJ//+Wyf//qt4T/l0wBrJdMAQCXTAEAAQEBAAEBAQABAQGsVVVV/4hvmf+EhP//f3///4SE//+Ib5n/u4hV/7uIVf+7iFX/u4hV/5lNAauZTQEAmU0BAAQEBAAEBAQABAQEiry8q/9hYcv/Q0PX/0VF2v9ISN3/cHDf/+jo4v/v7+z/9/f0//z8/P9VVStmVVUrAFVVKwAEBAQABAQEAAQEBGgEBASKmU0Bq5lNAauZTQGrmU0Bq5lNAauZTQGrmU0Bq5lNAauZTQGrmU0BgZlNAQCZTQEAAAAAAAAAAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3Eif%20%28%20this.hasAttribute%28%22initialized%22%29%20%29%20return%3B%0A%0A//%20http%3A//infocatcher.ucoz.net/js/cb/bookmarksFolder.js%0A//%20https%3A//forum.mozilla-russia.org/viewtopic.php%3Fid%3D57872%0A//%20https%3A//github.com/Infocatcher/Custom_Buttons/tree/master/Bookmarks_Folder%0A%0A//%20Bookmarks%20Folder%20button%20for%20Custom%20Buttons%0A//%20%28code%20for%20%22initialization%22%20section%29%0A%0A//%20%28c%29%20Infocatcher%202011-2014%0A//%20version%200.1.1%20-%202014-05-20%0A%0A//%20Compatibility%3A%20Firefox%204.0+%2C%20SeaMonkey%202.1+%0A%0A//%20Icon%20by%20FatCow%20Web%20Hosting%3A%20http%3A//www.iconfinder.com/icondetails/36059/16/%0A%0A//%20Hidden%20feature%3A%20you%20can%20manually%20set%20extensions.custombuttons.button%26lt%3BN%26gt%3B.bookmarkFolder%0A//%20preference%20to%20any%20place%3A%20URI%20https%3A//developer.mozilla.org/en-US/docs/Places_query_URIs%0A//%20%28and%20press%20OK%20in%20button%20editor%20or%20reopen%20window%20or%20restart%20browser%29%0A%0Avar%20options%20%3D%20%7B%0A%09hideDropMarker%3A%20true%2C%20//%20Hide%20%22v%22%20after%20button%27s%20icon%0A%09showLabel%3A%20undefined%2C%20//%20Set%20to%20true/false%20to%20force%20show/hide%20button%27s%20label%0A%09useFolderTitle%3A%20true%2C%0A%09//%20%22Select%20folder%22%20dialog%3A%0A%09dialogWidth%3A%20400%2C%0A%09dialogHeight%3A%20350%2C%0A%09dialogPersist%3A%20%22%22%20//%20Example%3A%20%22screenX%20screenY%20width%20height%22%0A%7D%3B%0A%0Afunction%20_localize%28s%2C%20key%29%20%7B%0A%09var%20strings%20%3D%20%7B%0A%09%09%22Select%20folder%22%3A%20%7B%0A%09%09%09ru%3A%20%22%u0412%u044B%u0431%u0435%u0440%u0438%u0442%u0435%20%u043F%u0430%u043F%u043A%u0443%22%0A%09%09%7D%2C%0A%09%09%22Root%20folder%22%3A%20%7B%0A%09%09%09ru%3A%20%22%u041A%u043E%u0440%u043D%u0435%u0432%u0430%u044F%20%u043F%u0430%u043F%u043A%u0430%22%0A%09%09%7D%0A%09%7D%3B%0A%09var%20locale%20%3D%20%28function%28%29%20%7B%0A%09%09var%20prefs%20%3D%20Services.prefs%3B%0A%09%09if%28%21prefs.getBoolPref%28%22intl.locale.matchOS%22%29%29%20%7B%0A%09%09%09var%20locale%20%3D%20prefs.getCharPref%28%22general.useragent.locale%22%29%3B%0A%09%09%09if%28locale.substr%280%2C%209%29%20%21%3D%20%22chrome%3A//%22%29%0A%09%09%09%09return%20locale%3B%0A%09%09%7D%0A%09%09return%20Components.classes%5B%22@mozilla.org/chrome/chrome-registry%3B1%22%5D%0A%09%09%09.getService%28Components.interfaces.nsIXULChromeRegistry%29%0A%09%09%09.getSelectedLocale%28%22global%22%29%3B%0A%09%7D%29%28%29.match%28/%5E%5Ba-z%5D*/%29%5B0%5D%3B%0A%09_localize%20%3D%20%21locale%20%7C%7C%20locale%20%3D%3D%20%22en%22%0A%09%09%3F%20function%28s%29%20%7B%0A%09%09%09return%20s%3B%0A%09%09%7D%0A%09%09%3A%20function%28s%29%20%7B%0A%09%09%09return%20strings%5Bs%5D%20%26amp%3B%26amp%3B%20strings%5Bs%5D%5Blocale%5D%20%7C%7C%20s%3B%0A%09%09%7D%3B%0A%09return%20_localize.apply%28this%2C%20arguments%29%3B%0A%7D%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0A//this.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%5C%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5CnCtrl-%u041B%3A%20%u0421%u043A%u0440%u044B%u0442%u044C/%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%5C%0A%20%20//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u0435%u0434%u0436%u0435%u0440%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%3B%0A%0A%0Athis.ondblclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20if%28e.target%20%3D%3D%20this%20%26amp%3B%26amp%3B%20e.button%20%3D%3D%200%29%7B%0A%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20PlacesCommandHook.showBookmarksManager%28%27AllBookmarks%27%29%3B%0A%20%20%20%20%7D%20%20%20%0A%7D%3B%0A%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%09if%28e.target%20%21%3D%20this%29%0A%09%09return%3B%0A%09%0A%09%0A%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26amp%3B%26amp%3B%20%21e.ctrlKey%20%26amp%3B%26amp%3B%20%21e.shiftKey%20%26amp%3B%26amp%3B%20%21e.altKey%20%26amp%3B%26amp%3B%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20PlacesCommandHook.bookmarkCurrentPage%28true%2C%20PlacesUtils.toolbarFolderId%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%7D%09%09%0A%09%09%0A%09%09%0A%09%09%0A%09if%28e.button%20%21%3D%202%20%26amp%3B%26amp%3B%20%21this.bookmarks.initialized%29%0A%09%09this.bookmarks.init%28%29%3B%0A%09else%20if%28e.button%20%3D%3D%201%20%7C%7C%20e.button%20%3D%3D%200%20%26amp%3B%26amp%3B%20%28e.shiftKey%20%7C%7C%20e.altKey%20%7C%7C%20e.metaKey%29%29%0A%09%09this.bookmarks.changeFolder%28%29%3B%0A%09else%20if%28e.button%20%3D%3D%201%20%7C%7C%20e.button%20%3D%3D%200%20%26amp%3B%26amp%3B%20%28e.ctrlKey%29%29%0A%09%09var%20bar%20%3D%20document.getElementById%28%22PersonalToolbar%22%29%3B%0A%20%20%20%20%20%20%20%20%20%09bar.collapsed%20%3D%20%21bar.collapsed%3B%0A%20%20%20%20%20%20%20%20%20%09document.persist%28%22PersonalToolbar%22%2C%20%21bar.collapsed%29%3B%09%09%0A%7D%3B%0Athis.onmousedown%20%3D%20function%28e%29%20%7B%0A%09if%28e.target%20%3D%3D%20this%20%26amp%3B%26amp%3B%20e.button%20%3D%3D%200%20%26amp%3B%26amp%3B%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.altKey%20%7C%7C%20e.metaKey%29%29%0A%09%09e.preventDefault%28%29%3B%0A%7D%3B%0Athis.onmouseover%20%3D%20function%28e%29%20%7B%0A%09if%28e.target%20%21%3D%20this%29%0A%09%09return%3B%0A%09Array.some%28%0A%09%09this.parentNode.getElementsByTagName%28%22*%22%29%2C%0A%09%09function%28node%29%20%7B%0A%09%09%09if%28%0A%09%09%09%09node%20%21%3D%20this%0A%09%09%09%09%26amp%3B%26amp%3B%20node.namespaceURI%20%3D%3D%20xulns%0A%09%09%09%09%26amp%3B%26amp%3B%20node.boxObject%0A%09%09%09%09%26amp%3B%26amp%3B%20node.boxObject%20instanceof%20Components.interfaces.nsIMenuBoxObject%0A%09%09%09%09%26amp%3B%26amp%3B%20node.open%0A%09%09%09%29%20%7B%0A%09%09%09%09node.open%20%3D%20false%3B%0A%09%09%09%09this.open%20%3D%20true%3B%0A%09%09%09%09return%20true%3B%0A%09%09%09%7D%0A%09%09%09return%20false%3B%0A%09%09%7D%2C%0A%09%09this%0A%09%29%3B%0A%7D%3B%0Athis.bookmarks%20%3D%20%7B%0A%09button%3A%20this%2C%0A%09get%20pref%28%29%20%7B%0A%09%09delete%20this.pref%3B%0A%09%09return%20this.pref%20%3D%20%22extensions.custombuttons.button%22%20+%20this.button.id.match%28/%5Cd*%24/%29%5B0%5D%20+%20%22.bookmarkFolder%22%3B%0A%09%7D%2C%0A%09get%20folder%28%29%20%7B%0A%09%09return%20Application.prefs.getValue%28this.pref%2C%20%22%22%29%3B%0A%09%7D%2C%0A%09set%20folder%28val%29%20%7B%0A%09%09Application.prefs.setValue%28this.pref%2C%20String%28val%29%29%3B%0A%09%7D%2C%0A%09get%20titlePref%28%29%20%7B%0A%09%09delete%20this.titlePref%3B%0A%09%09return%20this.titlePref%20%3D%20%22extensions.custombuttons.button%22%20+%20this.button.id.match%28/%5Cd*%24/%29%5B0%5D%20+%20%22.bookmarkFolderTitle%22%3B%0A%09%7D%2C%0A%09get%20folderTitle%28%29%20%7B%0A%09%09return%20Application.prefs.getValue%28this.titlePref%2C%20%22%22%29%3B%0A%09%7D%2C%0A%09set%20folderTitle%28val%29%20%7B%0A%09%09Application.prefs.setValue%28this.titlePref%2C%20val%29%3B%0A%09%7D%2C%0A%09get%20wm%28%29%20%7B%0A%09%09delete%20this.wm%3B%0A%09%09return%20this.wm%20%3D%20Components.classes%5B%22@mozilla.org/appshell/window-mediator%3B1%22%5D%0A%09%09%09.getService%28Components.interfaces.nsIWindowMediator%29%3B%0A%09%7D%2C%0A%09initialized%3A%20false%2C%0A%09init%3A%20function%28%29%20%7B%0A%09%09var%20folder%20%3D%20this.folder%3B%0A%09%09if%28%21folder%29%20%7B%0A%09%09%09folder%20%3D%20this.selectFolder%28%29%3B%0A%09%09%09if%28%21folder%29%0A%09%09%09%09return%3B%0A%09%09%09this.folder%20%3D%20folder%3B%0A%09%09%7D%0A%09%09var%20btn%20%3D%20this.button%3B%0A%09%09btn.setAttribute%28%22ondragenter%22%2C%20%22PlacesMenuDNDHandler.onDragEnter%28event%29%3B%22%29%3B%0A%09%09btn.setAttribute%28%22ondragover%22%2C%20%20%22PlacesMenuDNDHandler.onDragOver%28event%29%3B%22%29%3B%0A%09%09btn.setAttribute%28%22ondragexit%22%2C%20%20%22PlacesMenuDNDHandler.onDragExit%28event%29%3B%22%29%3B%0A%09//btn.setAttribute%28%22onmouseleave%22%2C%20%22this.mo%20%3D%20false%3B%20setTimeout%28function%28mp%29%20%7B%20if%20%28%20%21mp.mo%20%29%20mp.hidePopup%28%29%20%7D%2C%20200%2C%20this%29%22%29%3B%0A%20%20%20%20%20%20%20%20//btn.setAttribute%28%22onmouseover%22%2C%20%22this.mo%20%3D%20true%22%29%3B%0A%09%09//btn.setAttribute%28%22ondrop%22%2C%20%20%20%20%20%20%22PlacesMenuDNDHandler.onDrop%28event%29%3B%22%29%3B%0A%09%09btn.setAttribute%28%22ondrop%22%2C%20%20%20%20%20%20%22this.bookmarks.onDrop%28event%29%3B%22%29%3B%0A%09%09var%20mp%20%3D%20btn.getElementsByTagName%28%22menupopup%22%29%3B%0A%09%09mp.length%20%26amp%3B%26amp%3B%20mp%5B0%5D.parentNode.removeChild%28mp%5B0%5D%29%3B%0A%09%09mp%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%09%09mp.setAttribute%28%22context%22%2C%20%22placesContext%22%29%3B%0A%09%09mp.setAttribute%28%22placespopup%22%2C%20%22true%22%29%3B%0A%09%09var%20placeURI%20%3D%20folder.substr%280%2C%206%29%20%3D%3D%20%22place%3A%22%0A%09%09%09%3F%20folder%0A%09%09%09%3A%20%22place%3Afolder%3D%22%20+%20folder%20+%20%22%26amp%3BexcludeItems%3D0%26amp%3BexpandQueries%3D0%22%3B%0A%09%09placeURI%20%3D%20placeURI.replace%28/%22/g%2C%20%27%5C%5C%22%27%29%3B%0A%09%09mp.setAttribute%28%0A%09%09%09%22onpopupshowing%22%2C%0A%09%09%09%27this.parentNode.bookmarks.initMenu%28event%2C%20%22%27%20+%20placeURI%20+%20%27%22%29%3B%27%0A%09%09%29%3B%0A%09%09mp.setAttribute%28%22oncommand%22%2C%20%22BookmarksEventHandler.onCommand%28event%2C%20this.parentNode._placesView%29%3B%22%29%3B%0A%09%09mp.setAttribute%28%22onclick%22%2C%20%22BookmarksEventHandler.onClick%28event%2C%20this.parentNode._placesView%29%3B%22%29%3B%0A%09%09mp.setAttribute%28%22tooltip%22%2C%20%22bhTooltip%22%29%3B%0A%09%09mp.setAttribute%28%22popupsinherittooltip%22%2C%20%22true%22%29%3B%0A%09%09btn.appendChild%28mp%29%3B%0A%09%09options.useFolderTitle%20%26amp%3B%26amp%3B%20setTimeout%28function%28_this%29%20%7B%0A%09%09%09_this.setButtonTitle%28%29%3B%0A%09%09%7D%2C%200%2C%20this%29%3B%0A%0A%09%09this.initialized%20%3D%20true%3B%0A%09%7D%2C%0A%09initMenu%3A%20function%28event%2C%20placeURI%29%20%7B%0A%09%09var%20btn%20%3D%20this.button%3B%0A%09%09if%28%22_placesView%22%20in%20btn%29%0A%09%09%09return%3B%0A%09%09btn._placesMenu%20%3D%20new%20PlacesMenu%28event%2C%20placeURI%29%3B%0A%09%09if%28options.useFolderTitle%29%0A%09%09%09this.setButtonTitle%28btn._placesView._resultNode%20%26amp%3B%26amp%3B%20btn._placesView._resultNode.title%29%3B%0A%09%09//%20Add%20%22Open%20All%20in%20Tabs%22%20menuitem%0A%09%09try%20%7B%0A%09%09%09btn._placesView._mayAddCommandsItems.call%28%7B%0A%09%09%09%09_rootElt%3A%20null%2C%0A%09%09%09%09__proto__%3A%20btn._placesView%0A%09%09%09%7D%2C%20btn.firstChild%29%3B%0A%09%09%7D%0A%09%09catch%28e%29%20%7B%0A%09%09%09PlacesViewBase.prototype._mayAddCommandsItems%28btn.firstChild%29%3B%0A%09%09%7D%0A%09%7D%2C%0A%09destroy%3A%20function%28%29%20%7B%0A%09%09var%20btn%20%3D%20this.button%3B%0A%09%09if%28%21%28%22_placesMenu%22%20in%20btn%29%29%0A%09%09%09return%3B%0A%09%09try%20%7B%0A%09%09%09btn._placesMenu.uninit%28%29%3B%0A%09%09%7D%0A%09%09catch%28e%29%20%7B%0A%09%09%09Components.utils.reportError%28e%29%3B%0A%09%09%7D%0A%09%09delete%20btn._placesView%3B%0A%09%09delete%20btn._placesMenu%3B%0A%09%7D%2C%0A%09setButtonTitle%3A%20function%28title%29%20%7B%0A%09%09var%20btn%20%3D%20this.button%3B%0A%09%09if%28title%29%0A%09%09%09this.folderTitle%20%3D%20title%3B%0A%09%09else%0A%09%09%09title%20%3D%20this.folderTitle%3B%0A%09%09if%28title%29%0A%09%09%09btn.tooltipText%20%3D%20btn.label%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5CnCtrl-%u041B%3A%20%u0421%u043A%u0440%u044B%u0442%u044C/%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u0435%u0434%u0436%u0435%u0440%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%3B//title%3B%0A%09%7D%2C%0A%09initWithFolder%3A%20function%28folder%29%20%7B%0A%09%09this.destroy%28%29%3B%0A%09%09this.folder%20%3D%20folder%3B%0A%09%09var%20mp%20%3D%20this.button.firstChild%3B%0A%09%09mp.setAttribute%28%0A%09%09%09%22onpopupshowing%22%2C%0A%09%09%09mp.getAttribute%28%22onpopupshowing%22%29%0A%09%09%09%09.replace%28/%28place%3Afolder%3D%29%5Cw+/%2C%20%22%241%22%20+%20folder%29%0A%09%09%29%3B%0A%09%7D%2C%0A%09selectFolder%3A%20function%28%29%20%7B%0A%09%09var%20winType%20%3D%20this.button.id%20+%20%22%3Adialog%22%3B%0A%09%09var%20win%20%3D%20this.wm.getMostRecentWindow%28winType%29%3B%0A%09%09if%28win%29%20%7B%0A%09%09%09win.focus%28%29%3B%0A%09%09%09return%20null%3B%0A%09%09%7D%0A%09%09//%20https%3A//developer.mozilla.org/en/Displaying_Places_information_using_views%0A%09%09var%20rootFolder%20%3D%20PlacesUIUtils.allBookmarksFolderId%3B%0A%09%09var%20placesOverlay%20%3D%20Application.name%20%3D%3D%20%22SeaMonkey%22%0A%09%09%09%3F%20%27%5Cn%5C%0A%09%09%09%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//communicator/skin/bookmarks/bookmarks.css%22%3F%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//communicator/content/places/places.css%22%3F%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3B%3Fxul-overlay%20href%3D%22chrome%3A//communicator/content/bookmarks/placesOverlay.xul%22%3F%26gt%3B%27%0A%09%09%09%3A%20%27%5Cn%5C%0A%09%09%09%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//browser/content/places/places.css%22%3F%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//browser/skin/places/places.css%22%3F%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3B%3Fxul-overlay%20href%3D%22chrome%3A//browser/content/places/placesOverlay.xul%22%3F%26gt%3B%27%3B%0A%09%09//%20Note%3A%20%26lt%3Bproperty%20name%3D%22view%22%26gt%3B%20from%20chrome%3A//communicator/content/places/tree.xml%23places-tree%0A%09%09//%20are%20null%20sometimes.%0A%09%09//%20We%20are%20trying%20to%20re-apply%20binding%20as%20a%20workaround.%0A%09%09var%20persist%20%3D%20options.dialogPersist%3B%0A%09%09if%28persist%29%20%7B%0A%09%09%09persist%20%3D%20%27%5Cn%5C%0A%09%09%09%09persist%3D%22%27%20+%20persist%20+%20%27%22%27%3B%0A%09%09%7D%0A%09%09var%20winSrc%20%3D%20%27%5C%0A%09%09%09%26lt%3B%3Fxml%20version%3D%221.0%22%3F%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//global/skin/%22%20type%3D%22text/css%22%3F%26gt%3B%27%0A%09%09%09+%20placesOverlay%20+%20%27%5Cn%5C%0A%09%09%09%26lt%3Bdialog%20xmlns%3D%22%27%20+%20xulns%20+%20%27%22%5Cn%5C%0A%09%09%09%09id%3D%22%27%20+%20this.button.id%20+%20%22-dialog%22%20+%20%27%22%5Cn%5C%0A%09%09%09%09windowtype%3D%22%27%20+%20winType%20+%20%27%22%5Cn%5C%0A%09%09%09%09title%3D%22%27%20+%20_localize%28%22Select%20folder%22%29%20+%20%27%22%5Cn%5C%0A%09%09%09%09buttons%3D%22accept%2Ccancel%22%5Cn%5C%0A%09%09%09%09onload%3D%22init%28%29%3B%22%5Cn%5C%0A%09%09%09%09ondialogaccept%3D%22return%20dialogCallback%28%29%3B%22%5Cn%5C%0A%09%09%09%09width%3D%22%27%20+%20options.dialogWidth%20+%20%27%22%5Cn%5C%0A%09%09%09%09height%3D%22%27%20+%20options.dialogHeight%20+%20%27%22%27%20+%20persist%20+%20%27%26gt%3B%5Cn%5C%0A%09%09%09%09%26lt%3Bkeyset%26gt%3B%5Cn%5C%0A%09%09%09%09%09%26lt%3Bkey%20id%3D%22key-accept%22%20keycode%3D%22VK_RETURN%22%20modifiers%3D%22control%22%5Cn%5C%0A%09%09%09%09%09%09oncommand%3D%22document.documentElement.acceptDialog%28%29%3B%22%20/%26gt%3B%5Cn%5C%0A%09%09%09%09%26lt%3B/keyset%26gt%3B%5Cn%5C%0A%09%09%09%09%26lt%3Btree%20id%3D%22tree%22%20type%3D%22places%22%5Cn%5C%0A%09%09%09%09%09place%3D%22place%3AexcludeItems%3D1%26amp%3Bamp%3BexcludeQueries%3D1%26amp%3Bamp%3Bfolder%3D%27%20+%20rootFolder%20+%20%27%22%5Cn%5C%0A%09%09%09%09%09hidecolumnpicker%3D%22true%22%20seltype%3D%22single%22%20flex%3D%221%22%5Cn%5C%0A%09%09%09%09%09onselect%3D%22onSelect%28%29%3B%22%26gt%3B%5Cn%5C%0A%09%09%09%09%09%26lt%3Btreecols%26gt%3B%5Cn%5C%0A%09%09%09%09%09%09%26lt%3Btreecol%20id%3D%22title%22%20flex%3D%221%22%20primary%3D%22true%22%20hideheader%3D%22true%22%20/%26gt%3B%5Cn%5C%0A%09%09%09%09%09%26lt%3B/treecols%26gt%3B%5Cn%5C%0A%09%09%09%09%09%26lt%3Btreechildren%20/%26gt%3B%5Cn%5C%0A%09%09%09%09%26lt%3B/tree%26gt%3B%5Cn%5C%0A%09%09%09%09%26lt%3Bcheckbox%20id%3D%22root%22%20label%3D%22%27%20+%20_localize%28%22Root%20folder%22%29%20+%20%27%22%20oncommand%3D%22onSelect%28%29%3B%22%20/%26gt%3B%5Cn%5C%0A%09%09%09%09%26lt%3Bscript%20type%3D%22application/javascript%22%26gt%3B%26lt%3B%21%5BCDATA%5B%5Cn%5C%0A%09%09%09%09var%20%5BfolderId%2C%20rootFolder%2C%20callback%2C%20context%5D%20%3D%20window.arguments%3B%5Cn%5C%0A%09%09%09%09var%20tree%20%3D%20document.getElementById%28%22tree%22%29%3B%5Cn%5C%0A%09%09%09%09var%20root%20%3D%20document.getElementById%28%22root%22%29%3B%5Cn%5C%0A%09%09%09%09function%20init%28%29%20%7B%5Cn%5C%0A%09%09%09%09%09if%28%21ensurePlacesBinding%28init%2C%20this%2C%20arguments%29%29%5Cn%5C%0A%09%09%09%09%09%09return%3B%5Cn%5C%0A%09%09%09%09%09if%28folderId%20%3D%3D%20rootFolder%29%5Cn%5C%0A%09%09%09%09%09%09root.checked%20%3D%20true%3B%5Cn%5C%0A%09%09%09%09%09else%20if%28folderId%20%21%3D%20undefined%29%20%7B%5Cn%5C%0A%09%09%09%09%09%09tree.selectItems%28%5BfolderId%5D%29%3B%5Cn%5C%0A%09%09%09%09%09%09var%20i%20%3D%20tree.view.selection.currentIndex%3B%5Cn%5C%0A%09%09%09%09%09%09if%28i%20%21%3D%20-1%29%20%7B%5Cn%5C%0A%09%09%09%09%09%09%09setTimeout%28function%28%29%20%7B%5Cn%5C%0A%09%09%09%09%09%09%09%09tree.treeBoxObject.ensureRowIsVisible%28i%29%3B%5Cn%5C%0A%09%09%09%09%09%09%09%7D%2C%200%29%3B%5Cn%5C%0A%09%09%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09%09onSelect%28%29%3B%5Cn%5C%0A%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09function%20onSelect%28dis%29%20%7B%5Cn%5C%0A%09%09%09%09%09if%28%21ensurePlacesBinding%28onSelect%2C%20this%2C%20arguments%29%29%5Cn%5C%0A%09%09%09%09%09%09return%3B%5Cn%5C%0A%09%09%09%09%09if%28%21arguments.length%29%5Cn%5C%0A%09%09%09%09%09%09dis%20%3D%20%21root.checked%20%26amp%3B%26amp%3B%20%21tree.view.selection.getRangeCount%28%29%3B%5Cn%5C%0A%09%09%09%09%09document.documentElement.getButton%28%22accept%22%29.disabled%20%3D%20dis%3B%5Cn%5C%0A%09%09%09%09%09disableTree%28root.checked%29%3B%5Cn%5C%0A%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09function%20ensurePlacesBinding%28func%2C%20context%2C%20args%29%20%7B%5Cn%5C%0A%09%09%09%09%09if%28tree.view%20%26amp%3B%26amp%3B%20tree.selectItems%29%5Cn%5C%0A%09%09%09%09%09%09return%20true%3B%5Cn%5C%0A%09%09%09%09%09%5C//%20Try%20re-apply%20binding%2C%20hack%20for%20SeaMonkey%5Cn%5C%0A%09%09%09%09%09tree.removeAttribute%28%22type%22%29%3B%5Cn%5C%0A%09%09%09%09%09setTimeout%28function%28%29%20%7B%5Cn%5C%0A%09%09%09%09%09%09tree.setAttribute%28%22type%22%2C%20%22places%22%29%3B%5Cn%5C%0A%09%09%09%09%09%09setTimeout%28function%28%29%20%7B%5Cn%5C%0A%09%09%09%09%09%09%09func.apply%28context%2C%20args%29%3B%5Cn%5C%0A%09%09%09%09%09%09%7D%2C%200%29%3B%5Cn%5C%0A%09%09%09%09%09%7D%2C%200%29%3B%5Cn%5C%0A%09%09%09%09%09return%20false%3B%5Cn%5C%0A%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09function%20disableTree%28dis%29%20%7B%5Cn%5C%0A%09%09%09%09%09var%20treechildren%20%3D%20tree.getElementsByTagName%28%22treechildren%22%29%5B0%5D%3B%5Cn%5C%0A%09%09%09%09%09if%28dis%29%20%7B%5Cn%5C%0A%09%09%09%09%09%09treechildren.style.opacity%20%3D%20%220.6%22%3B%5Cn%5C%0A%09%09%09%09%09%09tree.setAttribute%28%22disabled%22%2C%20%22true%22%29%3B%5Cn%5C%0A%09%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09%09else%20%7B%5Cn%5C%0A%09%09%09%09%09%09treechildren.style.opacity%20%3D%20%22%22%3B%5Cn%5C%0A%09%09%09%09%09%09tree.removeAttribute%28%22disabled%22%29%3B%5Cn%5C%0A%09%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09function%20dialogCallback%28%29%20%7B%5Cn%5C%0A%09%09%09%09%09if%28root.checked%29%5Cn%5C%0A%09%09%09%09%09%09var%20id%20%3D%20rootFolder%3B%5Cn%5C%0A%09%09%09%09%09else%20%7B%5Cn%5C%0A%09%09%09%09%09%09var%20view%20%3D%20tree.view%3B%5Cn%5C%0A%09%09%09%09%09%09var%20i%20%3D%20view.selection.currentIndex%3B%5Cn%5C%0A%09%09%09%09%09%09if%28i%20%3D%3D%20-1%29%5Cn%5C%0A%09%09%09%09%09%09%09return%20false%3B%5Cn%5C%0A%09%09%09%09%09%09var%20item%20%3D%20view.nodeForTreeIndex%28i%29%3B%5Cn%5C%0A%09%09%09%09%09%09if%28item%29%20%7B%5Cn%5C%0A%09%09%09%09%09%09%09var%20id%20%3D%20/place%3Afolder%3D%28%5C%5Cw+%29/.test%28item.uri%29%5Cn%5C%0A%09%09%09%09%09%09%09%09%3F%20RegExp.%241%5Cn%5C%0A%09%09%09%09%09%09%09%09%3A%20item.itemId%3B%5Cn%5C%0A%09%09%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09%09callback.call%28context%2C%20id%29%3B%5Cn%5C%0A%09%09%09%09%09return%20true%3B%5Cn%5C%0A%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09onSelect%28false%29%3B%5Cn%5C%0A%09%09%09%09%5D%5D%26gt%3B%26lt%3B/script%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3B/dialog%26gt%3B%27%3B%0A%09%09var%20folder%3B%0A%09%09var%20callback%20%3D%20function%28folderId%29%20%7B%0A%09%09%09folder%20%3D%20folderId%3B%0A%09%09%7D%3B%0A%09%09var%20folderId%20%3D%20this.getFolderId%28this.folder%29%3B%0A%09%09window.openDialog%28%0A%09%09%09%22data%3Aapplication/vnd.mozilla.xul+xml%2C%22%20+%20encodeURIComponent%28winSrc.replace%28/%5E%5Cs+/%2C%20%22%22%29%29%2C%0A%09%09%09%22_blank%22%2C%0A%09%09%09%22chrome%2Call%2Cresizable%2Ccenterscreen%2Cmodal%22%2C%0A%09%09%09folderId%2C%20rootFolder%2C%20callback%2C%20this%0A%09%09%29%3B%0A%09%09if%28folder%20%26amp%3B%26amp%3B%20options.useFolderTitle%29%20setTimeout%28function%28btn%29%20%7B%0A%09%09%09var%20mp%20%3D%20btn.firstChild%3B%0A%09%09%09mp.collapsed%20%3D%20true%3B%0A%09%09%09btn.open%20%3D%20true%3B%0A%09%09%09btn.open%20%3D%20false%3B%0A%09%09%09mp.collapsed%20%3D%20false%3B%0A%09%09%7D%2C%20100%2C%20this.button%29%3B%0A%09%09return%20folder%3B%0A%09%7D%2C%0A%09changeFolder%3A%20function%28%29%20%7B%0A%09%09if%28%21this.initialized%29%20%7B%0A%09%09%09this.init%28%29%3B%0A%09%09%09return%3B%0A%09%09%7D%0A%09%09var%20folder%20%3D%20this.selectFolder%28%29%3B%0A%09%09if%28%21folder%29%0A%09%09%09return%3B%0A%09%09this.initWithFolder%28folder%29%3B%0A%0A%09%09var%20ws%20%3D%20this.wm.getEnumerator%28%22navigator%3Abrowser%22%29%3B%0A%09%09while%28ws.hasMoreElements%28%29%29%20%7B%0A%09%09%09let%20w%20%3D%20ws.getNext%28%29%3B%0A%09%09%09if%28w%20%3D%3D%20window%29%0A%09%09%09%09continue%3B%0A%09%09%09let%20btn%20%3D%20w.document.getElementById%28this.button.id%29%3B%0A%09%09%09btn%20%26amp%3B%26amp%3B%20btn.bookmarks.initWithFolder%28folder%29%3B%0A%09%09%7D%0A%09%7D%2C%0A%09getFolderId%3A%20function%28folder%29%20%7B%0A%09%09if%28/%5E%5Cd+%24/.test%28folder%29%29%0A%09%09%09return%20Number%28folder%29%3B%0A%09%09var%20bmsvc%20%3D%20Components.classes%5B%22@mozilla.org/browser/nav-bookmarks-service%3B1%22%5D%0A%09%09%09.getService%28Components.interfaces.nsINavBookmarksService%29%3B%0A%09%09switch%28folder%29%20%7B%0A%09%09%09case%20%22BOOKMARKS_MENU%22%3A%20%20%20%20return%20bmsvc.bookmarksMenuFolder%3B%0A%09%09%09case%20%22TOOLBAR%22%3A%20%20%20%20%20%20%20%20%20%20%20return%20bmsvc.toolbarFolder%3B%0A%09%09%09case%20%22UNFILED_BOOKMARKS%22%3A%20return%20bmsvc.unfiledBookmarksFolder%3B%0A%09%09%7D%0A%09%09return%20undefined%3B%0A%09%7D%2C%0A%09placesDrop%3A%20function%28event%2C%20folder%29%20%7B%0A%09%09//%20Based%20on%20PlacesMenuDNDHandler.onDrop%28event%29%20function%0A%09%09try%20%7B%0A%09%09%20%20%20%20var%20ip%20%3D%20new%20InsertionPoint%28folder%2C%20PlacesUtils.bookmarks.DEFAULT_INDEX%2C%20Ci.nsITreeView.DROP_ON%29%3B%0A%09%09%20%20%20%20PlacesControllerDragHelper.onDrop%28ip%2C%20event.dataTransfer%29%3B%0A%09%09%20%20%20%20event.stopPropagation%28%29%3B%0A%09%20%20%20%20%7D%0A%09%20%20%20%20catch%28e%29%20%7B%0A%09%20%20%20%20%09Components.utils.reportError%28e%29%3B%0A%09%20%20%20%20%7D%0A%09%7D%2C%0A%09onDrop%3A%20function%28e%29%20%7B%0A%09%09var%20folder%20%3D%20this.folder%3B%0A%09%09if%28e.target%20%21%3D%20this.button%20%7C%7C%20%21folder%29%20%7B%0A%09%09%09PlacesMenuDNDHandler.onDrop%28e%29%3B%0A%09%09%09return%3B%0A%09%09%7D%0A%09%09var%20folderId%20%3D%20this.getFolderId%28folder%29%3B%0A%09%09if%28folderId%29%0A%09%09%09this.placesDrop%28e%2C%20folderId%29%3B%0A%09%09else%0A%09%09%09PlacesMenuDNDHandler.onDrop%28e%29%3B%0A%09%7D%0A%7D%3B%0A%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0Aif%28options.hideDropMarker%20%7C%7C%20options.showLabel%20%21%3D%20undefined%29%20%7B%0A%09let%20btn%20%3D%20this%3B%0A%09let%20doc%20%3D%20btn.ownerDocument%3B%0A%09let%20stopTime%20%3D%20Date.now%28%29%20+%20500%3B%0A%09setTimeout%28function%20tweakButton%28%29%20%7B%20//%20Wait%20for%20menu%20XBL%20binding%0A%09%09var%20dm%20%3D%20options.hideDropMarker%0A%09%09%09%26amp%3B%26amp%3B%20doc.getAnonymousElementByAttribute%28btn%2C%20%22class%22%2C%20%22toolbarbutton-menu-dropmarker%22%29%3B%0A%09%09var%20lb%20%3D%20options.showLabel%20%21%3D%20undefined%0A%09%09%09%26amp%3B%26amp%3B%20doc.getAnonymousElementByAttribute%28btn%2C%20%22class%22%2C%20%22toolbarbutton-text%22%29%3B%0A%09%09if%28dm%29%20%7B%0A%09%09%09dm.hidden%20%3D%20true%3B%0A%09%09%09//%20Hack%20for%20Firefox%2019%20and%20large%20icons%0A%09%09%09let%20icon%20%3D%20doc.getAnonymousElementByAttribute%28btn%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%09%09%09if%28icon%29%20%7B%0A%09%09%09%09let%20s%20%3D%20doc.defaultView.getComputedStyle%28icon%2C%20null%29%3B%0A%09%09%09%09if%28s.paddingRight%20%21%3D%20s.paddingLeft%29%0A%09%09%09%09%09icon.style.paddingLeft%20%3D%20icon.style.paddingRight%20%3D%20s.paddingLeft%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%09if%28lb%29%0A%09%09%09lb.style.display%20%3D%20options.showLabel%20%3F%20%22-moz-box%22%20%3A%20%22none%22%3B%0A%09%09if%28%21dm%20%26amp%3B%26amp%3B%20%21lb%20%26amp%3B%26amp%3B%20Date.now%28%29%20%26lt%3B%20stopTime%29%0A%09%09%09setTimeout%28tweakButton%2C%2010%29%3B%0A%09%7D%2C%200%29%3B%0A%7D%0A%0AsetTimeout%28function%28_this%29%20%7B%20//%20Don%27t%20show%20modal%20%22Select%20folder%22%20dialog%20during%20initialization%0A%09_this.bookmarks.init%28%29%3B%0A%7D%2C%200%2C%20this%29%3B%0Athis.onDestroy%20%3D%20function%28%29%20%7B%0A%09this.bookmarks.destroy%28%29%3B%0A%7D%3B%0A%0A%0A%0A//%20%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%u043C%u0438%2C%20%u043E%u0442%2025.10.2014.%20................................%20%0A%28function%20func%28%29%20%7B%0A%20%20%20//%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0433%u0434%u0435%20%u043B%u0435%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u0432%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20var%20current%20%3D%20%5B%22about%3Anewtab%22%2C%20%22about%3Ablank%22%2C%20%22chrome%3A//browser/content/bookmarks/bookmarksPanel.xul%22%2C%20%22%22%5D%3B%20%0A%20%20%20%0A%20%20%20const%20background%20%3D%20true%3B%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u0432%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%0A%20%20%20const%20nextToCurrent%20%3D%20false%3B%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u0440%u044F%u0434%u043E%u043C%20%u0441%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u043E%u0439%0A%20%20%20const%20menuAutoClose%20%3D%20true%3B%20%20%20//%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u043F%u0440%u0438%20%u0443%u0445%u043E%u0434%u0435%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%0A%20%20%20%0A%20%20%20function%20handleClick%28e%29%20%7B%20%0A%20%20%20%20%20%20var%20target%20%3D%20e.originalTarget%3B%0A%20%20%20%20%20%20var%20sidebar%20%3D%20target.ownerDocument.defaultView.top%20%21%3D%3D%20content%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26amp%3B%26amp%3B%20target.id%20%3D%3D%20%27bookmarks-view-children%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20//if%20%28%20target.localName%20%3D%3D%20%27menuitem%27%20%29%20LOG%28%27%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%u043C%u0438%20%20%20%27%20+%20target.getAttribute%28%27targetURI%27%29%29%3B%0A%0A%20%20%20%20%20%20if%20%28%20%21sidebar%20%26amp%3B%26amp%3B%20%21target._placesNode%20%29%20return%3B%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%2C%20%u043F%u0430%u043F%u043A%u0430%2C%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%20%0A%0A%20%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%2C%20%u0430%u0434%u0440%u0435%u0441%2C%20%u043F%u0430%u043F%u043A%u0443%20%u0438%20id%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%2C%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%0A%20%20%20%20%20%20if%20%28%20sidebar%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20tree%20%3D%20target.parentNode%3B%0A%20%20%20%20%20%20%20%20%20%20%20var%20box%20%3D%20tree.treeBoxObject%3B%0A%20%20%20%20%20%20%20%20%20%20%20var%20row%20%3D%20box.getRowAt%28e.clientX%2C%20e.clientY%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20var%20node%20%3D%20tree.view.nodeForTreeIndex%28row%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20var%20node%20%3D%20sidebar%20%3F%20node%20%3A%20target._placesNode%2C%0A%20%20%20%20%20%20id%20%3D%20node.itemId%2C%20uri%20%3D%20node.uri%2C%20button%20%3D%20e.button%2C%20type%20%3D%20e.type%2C%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20isFolder%20%3D%20PlacesUtils.nodeIsContainer%28node%29%2C%20isURI%20%3D%20PlacesUtils.nodeIsURI%28node%29%3B%0A%0A%20%20%20%20%20%20//%20%u0434%u0432%u043E%u0439%u043D%u043E%u0439%20%u043A%u043B%u0438%u043A%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u0438%u043B%u0438%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%2C%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%20....%0A%20%20%20%20%20%20if%20%28%20button%20%21%3D%3D%201%20%26amp%3B%26amp%3B%20type%20%3D%3D%20%27mouseup%27%20%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20button%20%3D%3D%200%20%26amp%3B%26amp%3B%20func.flag%20%3D%3D%20true%20%26amp%3B%26amp%3B%20isFolder%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20addBookmark%28node%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sidebar%20%26amp%3B%26amp%3B%20tree.view.toggleOpenState%28row%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20button%20%3D%3D%202%20%26amp%3B%26amp%3B%20func.flag%20%3D%3D%20true%20%26amp%3B%26amp%3B%20%21isFolder%20%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20target.ownerDocument.getElementById%28%22placesContext%22%29.hidePopup%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20PlacesUtils.bookmarks.removeItem%28id%29%20%7D%20catch%28e%29%20%7B%7D%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%200%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20func.flag%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20func.flag%20%3D%20false%2C%20400%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20if%20%28%20isFolder%20%29%20return%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043F%u0430%u043F%u043A%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%0A%20%20%20%20%20%20if%20%28%20button%20%3D%3D%200%20%29%20window.clearTimeout%28%20func.timer%20%29%3B%20%20//%20%u0441%u0431%u0440%u043E%u0441%u0438%u0442%u044C%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u0434%u043B%u0438%u043D%u043D%u043E%u0433%u043E%20%u043A%u043B%u0438%u043A%u0430%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20//%20%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u0434%u043B%u044F%20%u043A%u043B%u0438%u043A%u0430%20%u0438%20%u043E%u0442%u0436%u0430%u0442%u0438%u044F%20....%0A%20%20%20%20%20%20if%20%28%20button%20%21%3D%3D%202%20%26amp%3B%26amp%3B%20/click%7Cmouseup/.test%28type%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043B%u0435%u0432%u044B%u0439%20%u0434%u043B%u0438%u043D%u043D%u044B%u0439%20%u043A%u043B%u0438%u043A%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0432%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u043F%u043E%u0434%20%u043D%u0430%u0436%u0430%u0442%u043E%u0439%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u043E%u0439%20....%0A%20%20%20%20%20%20if%20%28%20button%20%3D%3D%200%20%26amp%3B%26amp%3B%20type%20%3D%3D%20%27mousedown%27%20%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20func.loadBook%20%3D%20true%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20func.timer%20%3D%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20func.loadBook%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20addBookmark%28node.parent%2C%20id%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20400%20%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043B%u0435%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20....%20%20%20%20%20%20%0A%20%20%20%20%20%20if%20%28%20button%20%3D%3D%200%20%26amp%3B%26amp%3B%20type%20%3D%3D%20%27mouseup%27%20%26amp%3B%26amp%3B%20func.loadBook%20%26amp%3B%26amp%3B%20isURI%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%28%20uri.startsWith%28%22javascript%22%29%20%7C%7C%20current.indexOf%28content.location.href%29%20%21%3D%3D%20-1%20%7C%7C%20e.ctrlKey%20%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%3F%20gBrowser.loadURI%28%20uri%20%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%3A%20gBrowser.loadOneTab%28%20uri%2C%20%7BrelatedToCurrent%3A%20nextToCurrent%2C%20inBackground%3A%20background%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20referrerURI%3A%20null%20%7D%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%20%20//%20%u0441%u0440%u0435%u0434%u043D%u0438%u0439%20%u043A%u043B%u0438%u043A%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u0432%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20....%0A%20%20%20%20%20%20if%20%28%20button%20%3D%3D%201%20%26amp%3B%26amp%3B%20type%20%3D%3D%20%27click%27%20%26amp%3B%26amp%3B%20isURI%20%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20gBrowser.loadURI%28%20uri%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20//%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u043C%u0435%u043D%u044E%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u043F%u0440%u0438%20%u0443%u0445%u043E%u0434%u0435%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%20....%20%0A%20%20%20%20%20%20var%20menu%20%3D%20target.parentNode%3B%0A%20%20%20%20%20%20if%20%28%20%21menuAutoClose%20%7C%7C%20%21menu%20%7C%7C%20menu.localName%20%21%3D%3D%20%27menupopup%27%20%7C%7C%20type%20%21%3D%3D%20%27click%27%20%7C%7C%20button%20%3D%3D%202%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20menu.onmouseover%20%3D%20function%28%29%20menu.f%20%3D%20true%3B%0A%20%20%20%20%20%20menu.onmouseleave%20%3D%20function%28%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20menu.f%20%3D%20false%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20menu.f%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20for%20%28%20var%20node%20%3D%20menu%3B%20node%3B%20node%20%3D%20node.parentNode%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20node.nodeName%20%3D%3D%20%27menupopup%27%20%26amp%3B%26amp%3B%20node.hidePopup%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20menu.onmouseleave%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%7D%2C%20500%29%3B%20%20%20%20%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%7D%3B%0A%20%20%20%5B%22click%22%2C%20%22dragstart%22%2C%20%22mouseup%22%2C%20%22mousedown%22%5D%0A%20%20%20.forEach%28function%28type%29%20addEventListener%28type%2C%20handleClick%2C%20true%29%20%29%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u0434%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u0432%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u043E%u0439%20%u043F%u0430%u043F%u043A%u0435%20....%0A%20%20%20function%20addBookmark%28folder%2C%20id%29%20%7B%0A%20%20%20%20%20%20var%20title%20%3D%20gBrowser.mCurrentTab.label%3B%0A%20%20%20%20%20%20var%20folderId%20%3D%20PlacesUtils.getConcreteItemId%28folder%29%3B%0A%20%20%20%20%20%20var%20index%20%3D%20id%20%3F%20PlacesUtils.bookmarks.getItemIndex%28id%29%20+%201%20%3A%200%3B%0A%20%20%20%20%20%20var%20readOnlyFolder%20%3D%20PlacesUtils.nodeIsQuery%28folder%29%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20PlacesUtils.annotations.itemHasAnnotation%28folderId%2C%20PlacesUtils.LMANNO_FEEDURI%29%3B%0A%20%20%20%20%20%20if%20%28%20%21readOnlyFolder%20%29%0A%20%20%20%20%20%20%20%20%20%20%20PlacesUtils.bookmarks.insertBookmark%28folderId%2C%20gBrowser.currentURI%2C%20index%2C%20title%29%3B%0A%0A%20%20%20%20%20%20//%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%0A%20%20%20%20%20%20if%20%28%20id%20%29%20return%3B%0A%20%20%20%20%20%20var%20al%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%20%20%20%20%20%20if%20%28%20readOnlyFolder%20%29%20%7B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20al.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20folder.title%2C%20%22%u041D%u0435%20%u043F%u043E%u0434%u0434%u0435%u0440%u0436%u0438%u0432%u0430%u0435%u0442%u0441%u044F%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20var%20icon%20%3D%20gBrowser.mCurrentTab.image%20%7C%7C%20%22chrome%3A//global/skin/icons/information-16.png%22%3B%0A%20%20%20%20%20%20al.showAlertNotification%28icon%2C%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%22%20+%20%28folder.title%20%7C%7C%20%22%28%u0431%u0435%u0437%20%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043A%u0430%29%22%29%20+%20%22%3A%22%2C%20title.slice%280%2C%20100%29%29%3B%0A%20%20%20%7D%3B%20%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%22%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0432%u0441%u0435%u0445%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%20%u0432%20%u043C%u0435%u043D%u044E%20%22%u0417%u0430%u043A%u043B%u0430%u0434%u043A%u0438%22%2C%20%u043E%u0442%2002.08.2014.%20................................%0A%28function%28%29%20%7B%0A%20%20%20//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%u0432%20%u043C%u0435%u043D%u044E%20....%0A%20%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%20%20%20%0A%20%20%20menuitem.setAttribute%28%22label%22%2C%20%22%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0432%u0441%u0435%u0445%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%29%3B%0A%20%20%20var%20sep%20%3D%20document.getElementById%28%22organizeBookmarksSeparator%22%29%3B%20%0A%20%20%20sep.parentNode.insertBefore%28%20menuitem%2C%20sep%20%29%3B%20%20%20%0A%20%20%20addDestructor%28function%28%29%20%7B%20sep.parentNode.removeChild%28%20menuitem%20%29%20%7D%29%3B%0A%20%20%20addEventListener%28%22click%22%2C%20function%28%29%20chooseBookmarks%281%29%2C%20false%2C%20menuitem%20%29%3B%20//%20%u0435%u0441%u043B%u0438%20%u043A%u043B%u0438%u043A%20%u043D%u0430%20%u043F%u0443%u043D%u043A%u0442%u0435%20%u043C%u0435%u043D%u044E%20%20%20%20%20%0A%20%20%20%0A%0A%20%20%20//%20%u041F%u0435%u0440%u0435%u0431%u0440%u0430%u0442%u044C%20%u0432%u0441%u0435%20http%28s%29%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20....%20%0A%20%20%20function%20chooseBookmarks%28%20id%20%29%20%7B%0A%20%20%20%20%20%20var%20folder%20%3D%20PlacesUtils.getFolderContents%28%20id%20%29.root%3B%0A%20%20%20%0A%20%20%20%20%20%20folder.QueryInterface%28Ci.nsINavHistoryContainerResultNode%29%3B%0A%20%20%20%20%20%20folder.containerOpen%20%3D%20true%3B%0A%0A%20%20%20%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%26lt%3B%20folder.childCount%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20child%20%3D%20folder.getChild%28i%29%3B%0A%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20PlacesUtils.nodeIsFolder%28%20child%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20chooseBookmarks%28%20child.itemId%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20child.uri.startsWith%28%22http%22%29%20%26amp%3B%26amp%3B%20child.icon%20%3D%3D%20%27%27%20%26amp%3B%26amp%3B%20getSiteFavicon%28%20child.uri%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20folder.containerOpen%20%3D%20false%3B%0A%20%20%20%7D%3B%0A%0A%0A%20%20%20//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u043A%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%u043C%20%u0441%20%u043E%u0434%u0438%u043D%u0430%u043A%u043E%u0432%u044B%u043C%u0438%20%u0430%u0434%u0440%u0435%u0441%u0430%u043C%u0438%20....%20%20%0A%20%20%20function%20setBookFavicon%28%20faviconURI%2C%20siteURI%20%29%20%7B%0A%20%20%20%20%20%20var%20iconURI%20%3D%20Services.io.newURI%28%20faviconURI%2C%20null%2C%20null%29%3B%0A%20%20%20%20%20%20var%20bookmarkURI%20%3D%20Services.io.newURI%28%20siteURI%2C%20null%2C%20null%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20faviconService%20%3D%20Cc%5B%22@mozilla.org/browser/favicon-service%3B1%22%5D.getService%28Ci.mozIAsyncFavicons%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20faviconService.setAndFetchFaviconForPage%28%0A%20%20%20%20%20%20%20%20%20bookmarkURI%2C%0A%20%20%20%20%20%20%20%20%20iconURI%2C%0A%20%20%20%20%20%20%20%20%20false%2C%0A%20%20%20%20%20%20%20%20%20faviconService.FAVICON_LOAD_NON_PRIVATE%0A%20%20%20%20%20%20%29%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20....%20%0A%20%20%20function%20getSiteFavicon%28%20siteURI%20%29%20%7B%0A%20%20%20%20%20%20var%20hostURI%20%3D%20%22http%3A//%22%20+%20siteURI.split%28/%5C/+/g%29%5B1%5D%20+%20%22/%22%3B%0A%20%20%20%20%20%20var%20faviconURI%20%3D%20hostURI%20+%20%22favicon.ico%22%3B%20%20//%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0441%u0430%u0439%u0442%u0430%0A%0A%20%20%20%20%20%20if%20%28%20getSiteFavicon%5BsiteURI%5D%20%29%20return%3B%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%20%u0435%u0441%u043B%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0430%20%u0441%20%u0442%u0430%u043A%u0438%u043C%20%u0430%u0434%u0440%u0435%u0441%u043E%u043C%20%u0443%u0436%u0435%20%u0431%u044B%u043B%u0430%0A%20%20%20%20%20%20getSiteFavicon%5BsiteURI%5D%20%3D%20true%3B%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0438%u0437%20%u0434%u043E%u043A%u0443%u043C%u0435%u043D%u0442%u0430%20%u0441%u0430%u0439%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%0A%20%20%20%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20xhr.open%28%22GET%22%2C%20siteURI%2C%20true%29%3B%0A%20%20%20%20%20%20xhr.responseType%20%3D%20%22document%22%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20xhr.onload%20%3D%20xhr.onerror%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20doc%20%3D%20xhr.responseXML%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20doc%20%21%3D%3D%20null%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20links%20%3D%20doc.getElementsByTagName%28%22link%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B...links%5D.forEach%28function%28link%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%28%3F%3A%5E%7C%5Cs%29icon%28%3F%3A%5Cs%7C%24%29/.test%28link.rel.toLowerCase%28%29%29%20%29%20faviconURI%20%3D%20link.href%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20setBookFavicon%28%20faviconURI%2C%20siteURI%20%29%3B%20%20//%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0438%20%20%20%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20xhr.send%28%29%3B%0A%20%20%20%7D%3B%20%20%20%0A%20%20%20%20%20%0A%7D%29%28%29%3B%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bif%28%21event.target%29%20%7B%20//%20Button%27s%20hotkey%20pressed%0A%09if%28this.bookmarks.initialized%29%0A%09%09this.open%20%3D%20%21this.open%3B%0A%09else%0A%09%09this.bookmarks.init%28%29%3B%0A%7D%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


, чтобы на стартовой странице закладки кликом открывались в той же вкладке, а не в новой? Пока на времянку открываю все в текущей вкладке:

Выделить код

Код:

// левый клик открывает закладку в новой или текущей вкладке ....      
      if ( button == 0 && type == 'mouseup' && func.loadBook && isURI ) {
 /*          ( uri.startsWith("javascript") || current.indexOf(content.location.href) !== -1 || e.ctrlKey ) 
           ? gBrowser.loadURI( uri ) 
           : gBrowser.loadOneTab( uri, {relatedToCurrent: nextToCurrent, inBackground: background,
                                        referrerURI: null } ); */
           gBrowser.loadURI( uri );
           }

Отредактировано emlen (07-01-2016 01:20:29)


SeaMonkey 2.39 forever

Отсутствует

 

№930207-01-2016 16:38:38

Mishania
Участник
 
Группа: Members
Зарегистрирован: 22-10-2011
Сообщений: 356
UA: Firefox 44.0

Re: Custom Buttons

Недавно начал использовать расширение Puzzle панели, но при размещение некоторых кнопок на боковой панели появляется стрелочка (не знаю как её правильно назвать, как например на гризманки). На боковой панели созданной расширением "Vertical Toolbar" - стрелки отсутствуют. Как избавится, а то два расширения с одинаковым функционалам не хочется использовать, а Puzzle вещь полезная. 
Кнопка для примера:
User Agent Switcher Lite

Выделить код

Код:

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%3EUser%20Agent%20Switcher%20Lite%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAEZElEQVQ4jWXMfTDUCRzH8V/TH+r+aGK4aSaGuHRGhJURzd2VburUOdGTZq3VXCI5uq08ZzMp0nQp9GBZu1PRE5PHI89OhL2jPLWsZSXSnYebMU3+ed8fXe66++P1x/fz+c5HEGBJWHaZccSVYpuwtHvr/i3y8t/+k38QcaHYJiy7zFiAJUJYdplxYtFQgbx8cj6pfJLkyinkFa+RV7wm9fEbLtS84Vz1FKfLJz+SVP6a02UT8/EPBwvDssuMBYlcZZtQMj4fpDYgVo0SqBpFojYQkDfKoVtjHH/4ipCCMfYqRtijGGFv7ggStYFAlQFx/ijxj8bnJXKVrRAQnWkfVzJOkGqEINUI/jd1HMzTsydnGIl6lEs1U6RWTeJ/cxjf6zoO5OoJUr5AerUTsXKYuJJxAqIz7YXdJzLWRxePEaTSs0+hY1eWFolKz3fXB9mVraW6b46qvjl2ZmnZlfmCQ1faubrzCP7pjUiUOqKLx9h9ImO94BOW7ih7YECSP4xUreeAYojwQgPHCg0cUg0zObfA5NwC3+f0Eh+r5sEWP3xjbhOYpyUwfxjZAwM+YemOwvYjqRsiCvWI83SLY1H3DJR0T1PTP0tN7wx1GgNPUy/T8sU2wqVnCbjRQ0DuEPtzBjlWoGf7kdQNgodU7hScP8hBxSBi5RASlZ7g/CGq+2ZIrRgj+GI9tYfD0bo4czckiqCMJ3yT0cu3mQPsu6kl5JaOr6RyJ2GDf4yzb1Yf4lwtKeVjVPfN8mp2gaqeacTXNCgz1QyvWcM1T29KH3cwMfOWuoFZ0qvGCVYOEpirZdOBRGfhc1+ZaNvFLnb89Ax5yQil3b8zMfeO6u4JSp5o6enrJykqmb0yJU0D00z9uUD9wBwXfn7JwZwBfDN7cPCViQRr7+Oum89rcJG34yJvx/1sJ6HqAX55pud57wBZd8rZEXOH5KJ+avtnCL2lY9/1F/hl97P9Ujdfpv2KtfdxV8HC6+hGUXI7DoltOCS24ZTURsydLhraurhbWkdBVQePOscp7ZridusE/lnP8c3qZWfGczzOaXBNbsfC6+hGYdXWUDf7+CfYxbVgF9eCKK4GZWkrh9MfIr7Swss/5hmbfsvXFzVsTevEM6UD78vP8Er/DdGZpzgmtrJqa6ibYOIpdV97qpm1p5qxldURe6MS59AcvM63sPHMU+53THK/Y4LFn1PNbEnT4CpvW8xMPKXugomHZJOVrAGrH+v57Oh9VkvzcYitR5TUis3JRkKUPYQoe7CSNSyyOdnImhP/3CYekk3CCpf97hYRFe/MI2tYHV6O+Q/VrItuxFpWj3lULfaxjdjHNmIeVfs/FlG1WERUvFvhst9dWGa72drMJ0VjE1m5YBfdgH1sI84JTTgnNCFKbMItqRm3pGZEiU04JTThGPd+2C66AZvIygUznxTNMtvN1oIgCEZLV5r7GZlaKozMLIuWm1oWv2dV/MmnH1tualX8oTcysywyMrVULF1p7icIgtFfxkUcJUxp7EkAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/**%0A%20*%20%20Button%20based%20on%20a%20script%20created%20for%20userChrome.js%20extension.%20http%3A//userchromejs.mozdev.org/%0A%20*%20%20Source%3A%20https%3A//github.com/ardiman/userChrome.js/tree/master/useragentswitcherlite%0A%20*/%0Aconst%20_UID%20%3D%20%22user_agent_switcher%22%20+%20%28self.id%29.split%28%22custombuttons%22%29%5B1%5D%3B%0A%0Avar%20userAgent%20%3D%20JSON.parse%28getHelp%28%22UserAgent%22%29%29%3B%0A%0Aif%20%28%21%28%22Services%22%20in%20window%29%29%0A%09Cu.import%28%22resource%3A//gre/modules/Services.jsm%22%29%3B%0A%0Avar%20uaMenu%20%3D%20%7B%0A%09init%20%3A%20function%20init%28%29%20%7B%0A%09%09var%20menuPopup%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%09%09menuPopup.id%20%3D%20_UID%20+%20%22-ua-switcher%22%3B%0A%0A%09%09//%20Default%0A%09%09var%20menuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%09%09menuItem.setAttribute%28%22label%22%2C%20%22Default%22%29%3B%0A%09%09menuItem.setAttribute%28%22accesskey%22%2C%20%22D%22%29%3B%0A%09%09menuItem.setAttribute%28%22type%22%2C%20%22radio%22%29%3B%0A%09%09menuItem.id%20%3D%20_UID%20+%20%22-ua-switcher-default%22%3B%0A%09%09menuItem.culMenu%20%3D%20%7B%0A%09%09%09agent%20%3A%20false%0A%09%09%7D%3B%0A%09%09menuItem.setAttribute%28%22oncommand%22%2C%20%22this.parentNode.parentNode.setUserAgent%28event%29%3B%22%29%3B%0A%09%09menuPopup.appendChild%28menuItem%29%3B%0A%0A%09%09//%20Separator%0A%09%09menuItem%20%3D%20document.createElement%28%22menuseparator%22%29%3B%0A%09%09menuItem.id%20%3D%20_UID%20+%20%22-ua-switcher-sep-default%22%3B%0A%09%09menuPopup.appendChild%28menuItem%29%3B%0A%0A%09%09for%20%28var%20i%20%3D%200%3B%20mItem%20%3D%20userAgent%5Bi%5D%3B%20i++%29%20%7B%0A%09%09%09if%20%28mItem.label%20%3D%3D%3D%20%22separator%22%29%20%7B%0A%09%09%09%09menuItem%20%3D%20document.createElement%28%22menuseparator%22%29%3B%0A%09%09%09%7D%20else%20%7B%0A%09%09%09%09menuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%09%09%09%09menuItem.setAttribute%28%22label%22%2C%20mItem.label%29%3B%0A%09%09%09%09if%20%28%22accesskey%22%20in%20mItem%29%0A%09%09%09%09%09menuItem.setAttribute%28%22accesskey%22%2C%20mItem.accesskey%29%3B%0A%09%09%09%09menuItem.setAttribute%28%22type%22%2C%20%22radio%22%29%3B%0A%09%09%09%09menuItem.culMenu%20%3D%20mItem%3B%0A%09%09%09%09menuItem.setAttribute%28%22oncommand%22%2C%20%22this.parentNode.parentNode.setUserAgent%28event%29%3B%22%29%3B%0A%09%09%09%7D%0A%09%09%09menuItem.id%20%3D%20_UID%20+%20%22-ua-switcher-%22%20+%20i%3B%0A%09%09%09menuPopup.appendChild%28menuItem%29%3B%0A%09%09%7D%0A%0A%09%09self.appendChild%28menuPopup%29%3B%0A%09%09let%20mPopId%20%3D%20_UID%20+%20%22-ua-switcher%22%3B%0A%09%09document.getElementById%28mPopId%29.setAttribute%28%22onpopupshowing%22%2C%0A%09%09%09%22this.parentNode.setUserAgentDisplay%28document.getElementById%28%27%22%20+%20mPopId%20+%20%22%27%29%29%3B%22%29%3B%0A%0A%09%09self.type%20%3D%20%22menu%22%3B%0A%09%7D%0A%7D%3B%0A%0AuaMenu.init%28%29%3B%0A%0Athis.setUserAgentDisplay%20%3D%20function%20%28aMPop%29%20%7B%0A%09var%20menu%20%3D%20aMPop.childNodes%3B%0A%0A%09//%20general.useragent.override%20exists%3F%0A%09var%20ua%3B%0A%09try%20%7B%0A%09%09ua%20%3D%20gCV%28%22general.useragent.override%22%2C%20true%29%3B%0A%09%7D%20catch%20%28e%29%20%7B%0A%09%09ua%20%3D%20null%3B%0A%09%7D%0A%0A%09//%20If%20no%20default%0A%09if%20%28%21ua%29%20%7B%0A%09%09menu%5B0%5D.setAttribute%28%22checked%22%2C%20true%29%3B%0A%09%09return%3B%0A%09%7D%0A%0A%09//%20To%20check%20the%20settings%0A%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20menu.length%3B%20i++%29%20%7B%0A%09%09if%20%28%21menu%5Bi%5D.culMenu%29%0A%09%09%09continue%3B%20//%20Separator%0A%09%09if%20%28menu%5Bi%5D.culMenu.agent%20%3D%3D%3D%20ua%29%20%7B%0A%09%09%09menu%5Bi%5D.setAttribute%28%22checked%22%2C%20true%29%3B%0A%09%09%09break%3B%0A%09%09%7D%0A%09%7D%0A%7D%3B%0A%0Athis.setUserAgent%20%3D%20function%20%28aEvent%29%20%7B%0A%09//%20Delete%20the%20item%20once%20you%20have%20selected%20a%20default%0A%09if%20%28%21aEvent.target.culMenu.agent%29%20%7B%0A%09%09Services.prefs.clearUserPref%28%22general.useragent.override%22%29%3B%0A%09%09return%3B%0A%09%7D%0A%0A%09var%20nsISupportsString%20%3D%20Ci.nsISupportsWString%20%7C%7C%0A%09%09Ci.nsISupportsString%3B%0A%09var%20ua%20%3D%20%28Cc%5B%22@mozilla.org/supports-wstring%3B1%22%5D%29%20%3F%0A%09Cc%5B%27@mozilla.org/supports-wstring%3B1%27%5D%0A%09.createInstance%28nsISupportsString%29%20%3A%0A%09Cc%5B%27@mozilla.org/supports-string%3B1%27%5D%0A%09.createInstance%28nsISupportsString%29%3B%0A%09ua.data%20%3D%20aEvent.target.culMenu.agent%3B%0A%0A%09//%20Set%20the%20value%0A%09sCV%28%22general.useragent.override%22%2C%20ua%2C%20true%29%3B%0A%7D%3B%0A%0Afunction%20gCV%28aKey%2C%20aBranch%29%20%7B%20//Get%20Complex%20Value%20%28Char%20Pref%29%0A%09return%20Services.prefs.getComplexValue%28%28%28%21aBranch%29%20%3F%20PREF_BRANCH%20+%20aKey%20%3A%20aKey%29%2C%20Ci.nsISupportsString%29.data%3B%0A%7D%0A%0Afunction%20sCV%28aKey%2C%20aVal%2C%20aBranch%29%20%7B%20//Set%20Complex%20Value%20%28Char%20Pref%29%0A%09var%20str%20%3D%20Cc%5B%22@mozilla.org/supports-string%3B1%22%5D.createInstance%28Ci.nsISupportsString%29%3B%0A%09str.data%20%3D%20aVal%3B%0A%09Services.prefs.setComplexValue%28%28%28%21aBranch%29%20%3F%20PREF_BRANCH%20+%20aKey%20%3A%20aKey%29%2C%20Ci.nsISupportsString%2C%20str%29%3B%0A%7D%0A%0Afunction%20getHelp%28aPlaceholder%29%20%7B%20//%20Get%20specific%20data%2C%20surrounded%20by%20%22placeholders%22%2C%20from%20the%20Help%20tab.%0A%09return%20document.getElementById%28self.id%29.getAttribute%28%22Help%22%29.split%28%22%3C%21--%22%20+%20aPlaceholder%20+%20%22--%3E%22%29%5B1%5D%3B%0A%7D%0A%0Aif%20%28self.parentNode%20%26%26%20self.parentNode.id.match%28%22PanelUI%22%29%29%0A%09self.orient%20%3D%20%22vertical%22%3B%0Aelse%0A%09self.orient%20%3D%20%22horizontal%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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%5BUser%20agent%20strings%20can%20be%20added/edited%20inside%20the%20Help%20tab%20of%20this%20button.%0A%0ABe%20very%20carefull%21%21%20The%20list%20of%20user%20agents%20is%20in%20JSON%20format%2C%20wich%20is%20very%20strict.%20A%20single%20misplaced%20comma%20or%20double%20quotes%20and%20the%20button%20will%20simply%20break.%0A%5B%2C%5D%0A%0A%3C%21--UserAgent--%3E%0A%5B%7B%0A%09%09%22label%22%20%3A%20%22Android%204.4.2%20-%20Samsung%20Galaxy%20S5%20%28SM-G900P%29%22%2C%0A%09%09%22agent%22%20%3A%20%22Mozilla/5.0%20%28Linux%3B%20Android%204.4.2%3B%20en-us%3B%20SAMSUNG%20SM-G900P%20Build/KOT49H%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Version/1.6%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22Mobile%20Safari%208.0%20iOS%20-%20iPhone%207%22%2C%0A%09%09%22agent%22%20%3A%20%22Mozilla/5.0%20%28iPhone%3B%20CPU%20iPhone%20OS%208_0_2%20like%20Mac%20OS%20X%29%20AppleWebKit/600.1.4%20%28KHTML%2C%20like%20Gecko%29%20Version/8.0%20Mobile/12A405%20Safari/600.1.4%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22separator%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22Chrome%2037.0%20Win7%2064-bit%22%2C%0A%09%09%22accesskey%22%20%3A%20%22C%22%2C%0A%09%09%22agent%22%20%3A%20%22Mozilla/5.0%20%28Windows%20NT%206.1%3B%20WOW64%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/37.0.2062.124%20Safari/537.36%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22Firefox%2044.0%20Linux%22%2C%0A%09%09%22accesskey%22%20%3A%20%22F%22%2C%0A%09%09%22agent%22%20%3A%20%22Mozilla/5.0%20%28X11%3B%20Ubuntu%3B%20Linux%20x86_64%3B%20rv%3A44.0%29%20Gecko/20100101%20Firefox/44.0%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22IE%2011.0%20Win7%2064-bit%22%2C%0A%09%09%22accesskey%22%20%3A%20%22I%22%2C%0A%09%09%22agent%22%20%3A%20%22Mozilla/5.0%20%28Windows%20NT%206.1%3B%20WOW64%3B%20Trident/7.0%3B%20rv%3A11.0%29%20like%20Gecko%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22Safari%208.0%20MacOSX%22%2C%0A%09%09%22accesskey%22%20%3A%20%22S%22%2C%0A%09%09%22agent%22%20%3A%20%22Mozilla/5.0%20%28Macintosh%3B%20Intel%20Mac%20OS%20X%2010_10%29%20AppleWebKit/600.1.25%20%28KHTML%2C%20like%20Gecko%29%20Version/8.0%20Safari/600.1.25%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22separator%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22Google%22%2C%0A%09%09%22accesskey%22%20%3A%20%22G%22%2C%0A%09%09%22agent%22%20%3A%20%22Googlebot/2.1%20%28+http%3A//www.google.com/bot.html%29%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22Yahoo%21%22%2C%0A%09%09%22accesskey%22%20%3A%20%22Y%22%2C%0A%09%09%22agent%22%20%3A%20%22Mozilla/5.0%20%28compatible%3B%20Yahoo%21%20Slurp%3B%20http%3A//help.yahoo.com/help/us/ysearch/slurp%29%22%0A%09%7D%2C%20%7B%0A%09%09%22label%22%20%3A%20%22Bing%22%2C%0A%09%09%22accesskey%22%20%3A%20%22B%22%2C%0A%09%09%22agent%22%20%3A%20%22Mozilla/5.0%20%28compatible%3B%20bingbot/2.0%3B%20+http%3A//www.bing.com/bingbot.htm%29%22%0A%09%7D%0A%5D%0A%3C%21--UserAgent--%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано Mishania (07-01-2016 16:39:36)

Отсутствует

 

№930307-01-2016 19:08:15

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

Re: Custom Buttons

Mishania

Выделить код

Код:

.toolbarbutton-menu-dropmarker {
display: none !important;
}

Если нужно только для конкретной панели, то подставьте сами для какой именно.

Отредактировано villa7 (07-01-2016 19:08:53)


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

Отсутствует

 

№930407-01-2016 20:11:36

Mishania
Участник
 
Группа: Members
Зарегистрирован: 22-10-2011
Сообщений: 356
UA: Firefox 44.0

Re: Custom Buttons

villa7
Прекрасно работает. Спасибо.

Отсутствует

 

№930507-01-2016 21:03:41

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

Re: Custom Buttons

emlen пишет

И какой адрес прописать в Управление закладками

Выделить код

Код:

"chrome://sstart/content/sstart.html"

Отсутствует

 

№930607-01-2016 21:45:56

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Firefox 36.0

Re: Custom Buttons

bunda1, спасибо!


SeaMonkey 2.39 forever

Отсутствует

 

№930712-01-2016 15:07:59

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

Re: Custom Buttons

Вопрос к знающим людям, у CustomButtons в файле CustomButtonsService.js с 799 строки есть функция installButton: function (param)..., как из неё через eval удалить строки:

Выделить код

Код:

if (param. newButton)
this. alert ("ButtonAddedAlert");

Отсутствует

 

№930812-01-2016 15:17:51

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 43.0

Re: Custom Buttons

bunda1
Никак, вроде бы: код реализации сервиса снаружи не виден.

Выделить код

Код:

custombuttons.cbService.installButton
/*
function installButton() {
    [native code]
}
*/

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№930912-01-2016 15:23:10

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

Re: Custom Buttons

Infocatcher пишет

bunda1
Никак, вроде бы: код реализации сервиса снаружи не виден.

Понятно :/

Отсутствует

 

№931012-01-2016 16:12:07

oopsididagainster
Участник
 
Группа: Members
Зарегистрирован: 25-04-2008
Сообщений: 102
UA: Firefox 38.0

Re: Custom Buttons

Подскажите почему срабатывает поиск по нажатию Shift+ПраваяКнопкаМыши ? Нужно чтобы вызывалось только меню редактирования кнопки.

скрытый текст
Проблемный код

Выделить код

Код:

else if ( e.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
               // Действие при клике ПКМ без модификаторов
               var paste = 'http://www.citilink.ru/search/?text='+readFromClipboard();
               getBrowser (). selectedTab = getBrowser (). addTab (paste);
               }

в кнопке

Выделить код

Код:

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%3ESearch%20on%20Citilink%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AEKFxgntjXgMQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAB5UlEQVQ4y6VTMWgTURj+/nd37eUSe5VSCLWlSamClSZNTxC6FZys4KKjg6Di5ORoSmh0c3MRiouTg5ODiyBCsQoSE4UiBWmtSHAxekcu5vruf8+l0QZi0fht7/v5Pr7/e+9RUJy7DNdZRT/wW1dMuM5qsxklx0qV1r9o6yXPSblOCL/safSJ4M6CFvhP9DT4djP/wF+e08Fy4d5B4qEb69TTQAi66K7USAELfSWAZfz1CuaBU1ZHOyVrlt5w6d2bngYvZwp6Mq0AJoAIkIzi5JRuS47Tt9+SX/Y0GVbFL3toV/U2NylLtkIip5QJAIeGYwACydN70SVjRJh4v66NWja3pCNME6ml1gs0nUVxP1wDQBo0aAp6fW72x7GTA3YnUuNJzF/G2KjXFNIkMMqEJIttjcQGHY7PpM7/vnpuyIfm5y1WR0IJKEJy0YSTw+bXp/r4uBA0GhMGNQDSWdLIQgkAjHANgM2bURBcEkO2/lVk+Ixhj5szhXnrUboj3o+9s9b4xJBns88/toVlotWIlGxEStZD3hKsTqTyxoXErHENMHa6Gp+KQwDYlZyfeLzxAQCo5ycr5k5hwHqlI0xXb1V2MsiYmasjHExg1y1WujT0pyfwvZSbJ8OqdJFSXXdXqnf3Uz8BTZLAkjVQipMAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.....................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20getSelect%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20value%20%3D%20custombuttons.promptBox%28%27%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%u0432%20Citilink%27%2C%20%27B%u0432%u0435%u0434%u0438%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%20....%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20value%5B0%5D%20%3F%20value%5B1%5D%20%3A%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20text%20%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20searchInWebsite1%28%20text%20%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20else%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20getSelect%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20value%20%3D%20custombuttons.promptBox%28%27%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%u0432%20Ulmart%27%2C%20%27B%u0432%u0435%u0434%u0438%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%20....%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20value%5B0%5D%20%3F%20value%5B1%5D%20%3A%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20text%20%3D%3D%20false%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20searchInWebsite2%28%20text%20%29%3B%09%09%09%20%20%20%0A%09%09%09%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20%20else%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%09%09%09%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%09%09%20%20%20%20%20%20%20var%20paste%20%3D%20%27http%3A//www.citilink.ru/search/%3Ftext%3D%27+readFromClipboard%28%29%3B%0A%09%09%20%20%20%20%20%20%20getBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28paste%29%3B%0A%09%09%09%20%20%20%7D%0A%7D%3B%0A%0A%0A%0A/*%20%u0417%u0430%u043F%u0443%u0441%u043A%u0430%u0435%u0442%20%u043F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%u0432%20Google%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043A%u043E%u0442%u043E%u0440%u044B%u0439%20%u043F%u0435%u0440%u0435%u0434%u0430%u043D%0A%20%20%20%u043A%u0430%u043A%20%u0430%u0440%u0433%u0443%u043C%u0435%u043D%u0442%20%u043F%u0440%u0438%20%u0432%u044B%u0437%u043E%u0432%u0435%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20...............................................*/%20%0Afunction%20searchInWebsite1%28%20text%20%29%20%7B%20%0A%20%20%20var%20text%20%3D%20escape%28%20convertFromUnicode%28%22UTF-8%22%2C%20text%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20var%20url%20%3D%20content.document.domain%3B%20%20%20%0A%20%20%20var%20url%20%3D%20encodeURIComponent%28%20url%20%29%3B%0A%20%20%20var%20url%20%3D%20%22http%3A//www.citilink.ru/search/%3Ftext%3D%22%20+%20text%3B%0A%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20url%20%29%3B%20%0A%7D%3B%0Afunction%20searchInWebsite2%28%20text%20%29%20%7B%20%0A%20%20%20var%20text%20%3D%20escape%28%20convertFromUnicode%28%22UTF-8%22%2C%20text%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20var%20url%20%3D%20content.document.domain%3B%20%20%20%0A%20%20%20var%20url%20%3D%20encodeURIComponent%28%20url%20%29%3B%0A%20%20%20var%20url%20%3D%20%22http%3A//www.ulmart.ru/search%3Fstring%3D%22%20+%20text%3B%0A%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20url%20%29%3B%20%0A%7D%3B%0Afunction%20searchInWebsite3%28%20text%20%29%20%7B%20%0A%20%20%20var%20text%20%3D%20escape%28%20convertFromUnicode%28%22UTF-8%22%2C%20text%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20var%20url%20%3D%20content.document.domain%3B%20%20%20%0A%20%20%20var%20url%20%3D%20encodeURIComponent%28%20url%20%29%3B%0A%20%20%20var%20url%20%3D%20%22http%3A//www.google.com/search%3Fas_q%3D%22%20+%20text%20+%20%22%26as_sitesearch%3D%22%20+%20url%3B%0A%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20url%20%29%3B%20%0A%7D%3B%0A%0A%0A/*%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u0434%u0430%u0441%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%2C%20%0A%20%20%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20...........................................*/%0Afunction%20getSelect%28%29%20%7B%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20....%0A%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20%7B%0A%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20var%20selection%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20//%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%u0441%20%u043E%u0431%u043E%u0438%u0445%20%u043A%u043E%u043D%u0446%u043E%u0432%20%u0442%u0435%u043A%u0441%u0442%u0430%20....%0A%20%20if%20%28%20selection%20%21%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20selection.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%20%20%20%20%0A%20%20return%20%28%20selection%20%3D%3D%20%27%27%29%3F%20false%3A%20selection%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.............................................................%0Athis.tooltipText%20%3D%20%22%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%5Cn%u041B%3A%09%u041F%u043E%u0438%u0441%u043A%20Citilink%20%5Cn%u0421%3A%09%u041F%u043E%u0438%u0441%u043A%20Ulmart%20%5Cn%u041F%3A%09CB%20%u043C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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
Выделить код

Код:

/*Initialization Code*/

// Настройка функций кликов мыши для кнопки .....................................
this.onclick = function(e) {
     
     if ( e.button == 0 ) {
          if ( getSelect() ) {
               var text = getSelect();
               }
          else
               {
               var value = custombuttons.promptBox('Поиск по сайту в Citilink', 'Bведите текст ....');
               var text = value[0] ? value[1] : false;
               if ( text == false ) return;
               }              
           searchInWebsite1( text );  
           }
               
     else if ( e.button == 1 ) {
          if ( getSelect() ) {
               var text = getSelect();
               }
          else
               {
               var value = custombuttons.promptBox('Поиск по сайту в Ulmart', 'Bведите текст ....');
               var text = value[0] ? value[1] : false;
               if ( text == false ) return;
               }              
           searchInWebsite2( text );               
               }
    
     else if ( e.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
               // Действие при клике ПКМ без модификаторов
               var paste = 'http://www.citilink.ru/search/?text='+readFromClipboard();
               getBrowser (). selectedTab = getBrowser (). addTab (paste);
               }
};



/* Запускает поиск по сайту в Google текста который передан
   как аргумент при вызове функции ...............................................*/ 
function searchInWebsite1( text ) { 
   var text = escape( convertFromUnicode("UTF-8", text) );           
   var url = content.document.domain;   
   var url = encodeURIComponent( url );
   var url = "http://www.citilink.ru/search/?text=" + text;
   gBrowser.selectedTab = gBrowser.addTab( url ); 
};
function searchInWebsite2( text ) { 
   var text = escape( convertFromUnicode("UTF-8", text) );           
   var url = content.document.domain;   
   var url = encodeURIComponent( url );
   var url = "http://www.ulmart.ru/search?string=" + text;
   gBrowser.selectedTab = gBrowser.addTab( url ); 
};
function searchInWebsite3( text ) { 
   var text = escape( convertFromUnicode("UTF-8", text) );           
   var url = content.document.domain;   
   var url = encodeURIComponent( url );
   var url = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + url;
   gBrowser.selectedTab = gBrowser.addTab( url ); 
};


/* Функция отдаст выделенный текст из страницы или текстового поля, 
   если текст не выделен отдаст 'false' ...........................................*/
function getSelect() {
  // выделенный текст из страницы ....
  var selection = document.commandDispatcher.focusedWindow.getSelection().toString();

  // выделенный текст из текстового поля ....
  if ( selection == '' ) {
       var theBox = document.commandDispatcher.focusedElement;
       if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { 
            var startPos = theBox.selectionStart;
        var endPos = theBox.selectionEnd;
        var selection = theBox.value.substring(startPos, endPos);  
            }
       };
         
  // убираем пробелы с обоих концов текста ....
  if ( selection !== '' ) var selection = selection.toString().replace(/^\s+|\s+$/g,"");
    
  return ( selection == '')? false: selection;
};



// Подсказка для кнопки .............................................................
this.tooltipText = "Поиск по сайту \nЛ:    Поиск Citilink \nС:    Поиск Ulmart \nП:    CB меню";

Отсутствует

 

№931112-01-2016 16:19:17

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

Re: Custom Buttons

oopsididagainster пишет

Подскажите почему срабатывает поиск по нажатию Shift+ПраваяКнопкаМыши ? Нужно чтобы вызывалось только меню редактирования кнопки.

Выделить код

Код:

else if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) {
          e.preventDefault();

Отсутствует

 

№931212-01-2016 16:43:57

oopsididagainster
Участник
 
Группа: Members
Зарегистрирован: 25-04-2008
Сообщений: 102
UA: Firefox 38.0

Re: Custom Buttons

bunda1
Я ошибся, мне нужно чтобы по нажатию Shift+ПраваяКнопкаМыши вызывалось меню редактирования кнопки, а по нажатию ПКМ производился поиск, если это возможно.

Отсутствует

 

№931312-01-2016 19:13:47

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

Re: Custom Buttons

oopsididagainster пишет

bunda1
Я ошибся, мне нужно чтобы по нажатию Shift+ПраваяКнопкаМыши вызывалось меню редактирования кнопки, а по нажатию ПКМ производился поиск, если это возможно.

Замени:

Выделить код

Код:

else if ( e.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
               // Действие при клике ПКМ без модификаторов
               var paste = 'http://www.citilink.ru/search/?text='+readFromClipboard();
               getBrowser (). selectedTab = getBrowser (). addTab (paste);
               }

на

Выделить код

Код:

else if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) {
          e.preventDefault();   
      
      // Действие при клике ПКМ без модификаторов
      var paste = 'http://www.citilink.ru/search/?text='+readFromClipboard();
      gBrowser.selectedTab = gBrowser.addTab( paste );
     }

Отсутствует

 

№931413-01-2016 13:01:30

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Firefox 36.0

Re: Custom Buttons

А что нужно в Автоскрытие панели поиска подправить, чтоб на симанке заработало?

А в History Export (Firefox) - вариант №2 очень было бы здорово чтобы хтмл сохраняло в таком виде, чтобы не ссылки показывало, а названия страничек, а ссылки под названиями спрятаны были...

Отредактировано emlen (13-01-2016 13:25:26)


SeaMonkey 2.39 forever

Отсутствует

 

№931513-01-2016 15:52:46

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 43.0

Re: Custom Buttons

bunda1
Поправь кнопку Переключить JavaScript( Firefox17+ ) от 11.01.2015.
Выключает или включает JavaScript для браузера и обновляет текущую страницу, изменения вступают в силу в новых страницах или после обновления уже открытых страниц. После переключения JavaScript соответственно меняется иконка кнопки.

Выделить код

Код:

var s = 'javascript.enabled';
var pref = Application.prefs.get(s);

this._handleClick =()=> BrowserReload(pref.value = !pref.value);
 
function toggleImage() {   
   self.style.filter = pref.value
   ? '' 
   : parseInt(Application.version) < 36 ? 'url("chrome://mozapps/skin/extensions/extensions.svg#greyscale")' : 'grayscale(1)';    
};
toggleImage();
cbu.ps.addObserver(s, toggleImage, false);
addDestructor(()=> cbu.ps.removeObserver(s, toggleImage) );

Кнопка нужная, но вот иконка... замена оригинального цвета на grayscale не очень заметно, а работы то на 2-3 минуты.

Даю пример

Выделить код

Код:

/*Initialization Code*/
const proxyPref = "network.proxy.type";
var onNetworkProxy="data:image/png;base64,iVBORw0KGgoAAAANSUhE... и т.д."
var offNetworkProxy="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAg... и т.д."

this.setButton=function(){
  if(Application.prefs.getValue(proxyPref, 0)==1){
 // this.label="Proxy";
  this.image=onNetworkProxy;
  this.tooltipText="Ручная настройка прокси"; 
   }
   else if(Application.prefs.getValue(proxyPref, 0)==0){
//  this.label="NotProxy";
  this.image=offNetworkProxy;
  this.tooltipText="Без прокси"; 
   } else alert("Ошибка кнопки ProxyOnOff. Не соответствие сетевых настроек прокси.") // Мало ли =)))
};

this.setButton();

this.leftclick = function(event) {
Application.prefs.setValue(proxyPref, Application.prefs.getValue(proxyPref, 0) == 0 ? 1 : 0);
this.setButton();
};

this.setAttribute('onclick', 'gQuot(event, this)');

"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№931613-01-2016 19:31:04

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

Re: Custom Buttons

Indomito пишет

bunda1
Поправь кнопку Переключить JavaScript( Firefox17+ ) от 11.01.2015.
Кнопка нужная, но вот иконка... замена оригинального цвета на grayscale не очень заметно, а работы то на 2-3 минуты.

Иконка будет красной при выключении JavaScript: Переключить JavaScript

Отсутствует

 

№931713-01-2016 20:12:46

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

Re: Custom Buttons

emlen пишет

А что нужно в Автоскрытие панели поиска подправить, чтоб на симанке заработало?

:/

Выделить код

Код:

// Автоматически закрывать панель поиска ........................       
((gFindBar)=> {  
   function autoClose() {  
      window.clearTimeout( self.closeTimer );
      try { autoClose.removeListener() } catch(e) {};
  
      function closeFind(e) { 
         if ( e !== 'timer' && e.target.nodeName == 'findbar') { 
              window.clearTimeout( self.closeTimer ); 
          
              autoClose.run = true;         
              }               
         else if ( e == 'timer' || autoClose.run && !gFindBar._findField.getAttribute("focused") ) {    
                   self.closeTimer = setTimeout(()=> {          
                      gFindBar.close();                  
                   }, 2000 );               

                   autoClose.run = false;               
                   }
      }
  
      if ( !gFindBar.hidden ) { 
           closeFind('timer');       
           addEventListener('mouseover', closeFind, false, window );       
           autoClose.removeListener =()=> { removeEventListener('mouseover', closeFind, false, window) };  
           } 
   };

   gFindBar.watch("hidden", function(prop, oldV, hidden) {
      setTimeout(function() { autoClose() }, 10);
      return hidden;
   });
        
})(document.getElementById("FindToolbar"));

Отсутствует

 

№931814-01-2016 11:07:02

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Firefox 36.0

Re: Custom Buttons

bunda1, спасибо, автоскрытие заработало как часы! А с History Export (Firefox) - вариант №2 никак низя в экспортный файл названия ресурсов вытягивать, а не только "страшные" ссылки с временем посещения?:blush:


SeaMonkey 2.39 forever

Отсутствует

 

№931914-01-2016 13:44:35

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

Re: Custom Buttons

emlen пишет

А с History Export (Firefox) - вариант №2 никак низя в экспортный файл названия ресурсов вытягивать, а не только "страшные" ссылки с временем посещения?:blush:

:(

Отсутствует

 

№932014-01-2016 15:49:25

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Firefox 36.0

Re: Custom Buttons

emlen пишет

bunda1, спасибо, автоскрытие заработало как часы!

Эммм, погорячился, печалька выходит - она закрывается в процессе ввода текста поискового запроса(


SeaMonkey 2.39 forever

Отсутствует

 

№932114-01-2016 16:07:03

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 43.0

Re: Custom Buttons

bunda1 пишет

Indomito пишет: bunda1Поправь кнопку Переключить JavaScript( Firefox17+ ) от 11.01.2015.Кнопка нужная, но вот иконка... замена оригинального цвета на grayscale не очень заметно, а работы то на 2-3 минуты.Иконка будет красной при выключении JavaScript: Переключить JavaScript

Сенкс и в результате получаем

Выделить код

Код:

var s = 'javascript.enabled';
var pref = Application.prefs.get(s);

this._handleClick =()=> BrowserReload(pref.value = !pref.value);
    
function toggleImage() {
   document.getAnonymousNodes(self)[0].src = pref.value
   //? self.image

// Это ON - серо-голубая
   ? "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAACQWzEUkFsxhJBbMaOQWzG2kFsxyZBbMdqQWzHrkFsx+pVhOf+aaUH/o3RP/62CX/+QWzHZkFsxNP///wD///8AlF8zaLiQbf/WuqP/38az/+fUw//u39P/9eri//v07//9+vb///79//vr3//77+b/wZ2A/5RfM2////8A////AJlkNonHpIX////////////////////////+/P/++/f//vfx//728f/krob/+ujb/86vlf+ZZDaL////AP///wCeaTlXnmk59rSFWf/ZpXv/2J5v/9ebav/YlmP/1pJd/9SPWf/Tjlf/4p1p//rj0f/Yu6L/nmk5nv///wD///8ApG88FKRvPKvVroz//fDl//fHov/3z63/+dW1//javf/43sL/+uHG//rkzP/99ez/4s66/6RvPLP///8A////AP///wCqdUAot4ZW//7+/f/63sL/+ty///nbwP/528D/+d3B//rbwP/63MP//eve/+zczf+qdUDK////AP///wD///8AsXtDHrmGUv/+/Pn/+dy///jbv//43MD/+dvC//ncwf/53cL/+t3D//vn1P/17eL/sXtD5P///wD///8A////ALeCRwm5hUv//vv3//ncwf/43L//+Ny///jbwP/53cD/+d3A//ndw//74sv//Pn1/7eCR/u3gkcB////AP///wD///8AvYhL+fz28P/538f/+dy9//rcv//628H/+t3D//rdwv/53cT/++DJ///8+v/BjVP/vYhLD////wD///8A////AMSOTtr159j/+uXS//navP/527z/+tu///rdwf/63cH/+d3E//vhyP///fv/yJRX/8SOThL///8A////AP///wDKlFK78NnB//vt4f/52sD/+dzC//nexf/64Mf/+uLK//rizf/65dD///79/8uPWv/KlFLxypRSRf///wD///8A0JpVpO3Qsv//9vD/+uHK//vjzP/749D/++bT//vp1f/86dj//Orb/////f/SnXH/7tnB/9CaVeX///8A////ANWfWJLryqX///37//3p1f/969j//erb//3t3//98OL//fHk//zw5P//////4KBw///7+f/fuIf/////AP///wDapFuE68aa///////87+L//fDn//3x6//99e7//fjx//369////Pr///////779//02sD/2qRb6v///wD///8A3qhdberAjP///////////////////////fn0//vz6v/469n/+ObT//Xfxv/py6b/3qhd7d6oXV3///8A////AOKsXzbirF/G6ryB/+i3d//msm3/5LBo/+KsX/DirF/j4qxfz+KsX8zirF+74qxfqOKsX0virF8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="

// Это OFF - темно-красная иконка   
: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQUAABUhAAAVKMAAFS2AABUyQAAVNoAAFTrAABU+gAAWv8AAGL/AABu/wAAfP8AAFTZAABUNP///wD///8AAABXaAAAif8AALb/AADD/wAA0P8AAN3/AADo/wAA8/8AAPn/AAD9/wAA6f8AAO3/AACY/wAAV2////8A////AAAAXIkAAJ7/AAD//wAA//8AAP//AAD//wAA/f8AAPr/AAD1/wAA9f8AAKf/AADm/wAAqv8AAFyL////AP///wAAAGBXAABg9gAAfP8AAJ7/AACW/wAAkv8AAI3/AACJ/wAAhv8AAIX/AACU/wAA4P8AALb/AABgnv///wD///8AAABlFAAAZasAAKj/AADu/wAAwf8AAMn/AADP/wAA1P8AANj/AADb/wAA3/8AAPP/AADK/wAAZbP///8A////AP///wAAAGooAAB8/wAA/f8AANj/AADW/wAA1v8AANb/AADX/wAA1v8AANf/AADp/wAA2f8AAGrK////AP///wD///8AAABwHgAAfP8AAPv/AADW/wAA1f8AANb/AADW/wAA1/8AANf/AADY/wAA4/8AAOr/AABw5P///wD///8A////AAAAdgkAAHn/AAD6/wAA1/8AANb/AADW/wAA1v8AANf/AADX/wAA2P8AAN3/AAD4/wAAdvsAAHYB////AP///wD///8AAAB7+QAA9P8AANr/AADV/wAA1v8AANb/AADY/wAA2P8AANj/AADc/wAA+/8AAIH/AAB7D////wD///8A////AAAAgNoAAOT/AADh/wAA1P8AANX/AADW/wAA1/8AANf/AADY/wAA3P8AAPz/AACH/wAAgBL///8A////AP///wAAAIa7AADU/wAA6v8AANX/AADX/wAA2f8AANv/AADd/wAA3v8AAOH/AAD9/wAAhf8AAIbxAACGRf///wD///8AAACLpAAAyv8AAPX/AADc/wAA3v8AAN//AADi/wAA5P8AAOX/AADn/wAA/v8AAJX/AADU/wAAi+X///8A////AAAAj5IAAML/AAD8/wAA5f8AAOf/AADn/wAA6v8AAO3/AADu/wAA7f8AAP//AACY/wAA+v8AAK3/////AP///wAAAJSEAAC8/wAA//8AAOz/AADu/wAA8P8AAPP/AAD2/wAA+f8AAPv/AAD//wAA+v8AANX/AACU6v///wD///8AAACXbQAAtf8AAP//AAD//wAA//8AAP//AAD3/wAA8f8AAOf/AADi/wAA2f8AAMP/AACX7QAAl13///8A////AAAAmjYAAJrGAACv/wAAqf8AAKP/AACg/wAAmvAAAJrjAACazwAAmswAAJq7AACaqAAAmksAAJoFAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQYABrEHAAaxBwAGsQcAArEHAAKxBwACsQcAArEHAAKxBwACsQQ==";
};
toggleImage();
cbu.ps.addObserver(s, toggleImage, false);
addDestructor(()=> cbu.ps.removeObserver(s, toggleImage) );

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

Спасибо за скрипт.

Добавлено 14-01-2016 16:20:32

emlen пишет
emlen пишет

bunda1, спасибо, автоскрытие заработало как часы!

Эммм, погорячился, печалька выходит - она закрывается в процессе ввода текста поискового запроса(

может обойтись без авто скрытия, а а просто переключатель кнопку + добавить по таймеру скрытие в диапазоне 15-25 секунд?

Выделить код

Код:

/*CODE*/

var fb = gFindBar;
if(fb.hidden)
    fb.open();
else
   fb.close();

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

Отредактировано Indomito (14-01-2016 16:20:32)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№932214-01-2016 19:00:25

Mishania
Участник
 
Группа: Members
Зарегистрирован: 22-10-2011
Сообщений: 356
UA: Firefox 44.0

Re: Custom Buttons

Здравствуйте, понадобилась мне кнопка на  боковую панель чтоб загрузки показывались в боковой панели. Сделал закладку about:downloads и поставил галочку "загружать в боковой панели". Всё работает, но не размещается на боковой панели Puzzle. Решил засунуть всё это в CB. Знания хватило только на

Выделить код

Код:

this.onclick=function(e) {
if (e.button==0) {
    var url = PlacesUtils.getURLAndPostDataForKeyword('dwnld')[0];
    loadURI(url);
    } 
}

, где "dwnld" - краткое имя закладки. Но кнопка открывает во вкладке. Как-бы сделать чтоб открывалось в боковой панели?

Отредактировано Mishania (14-01-2016 19:05:25)

Отсутствует

 

№932314-01-2016 19:30:22

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

Re: Custom Buttons

Mishania пишет

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

Выделить код

Код:

this._handleClick =()=> openWebPanel("Downloads", "about:downloads");

Отсутствует

 

№932414-01-2016 21:43:20

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

Re: Custom Buttons

emlen пишет

Эммм, погорячился, печалька выходит - она закрывается в процессе ввода текста поискового запроса(

:rolleyes:

Выделить код

Код:

// Автоматически закрывать панель поиска ........................       
((gFindBar)=> {  
   function autoClose() {
      delete self.closeTimer;           
      try { autoClose.removeListener() } catch(e) {};
      
      if ( !gFindBar.hidden ) { 
           toggleCloseTimer();       
           addEventListener('mouseover', toggleCloseTimer, false, window);       
           autoClose.removeListener =()=> removeEventListener('mouseover', toggleCloseTimer, false, window);  
           }
            
      function toggleCloseTimer(e) {
         if ( e && e.target.nodeName == 'findbar' ) {
              delete self.closeTimer;           
              }
                             
         else {
              if ( !self.closeTimer )
                   self.closeTimer = setTimeout(()=> {
                      delete self.closeTimer;                   
                      !gFindBar._findField.getAttribute("focused") && gFindBar.close();
                   }, 2000);
              }       
      }
  
   };

   gFindBar.watch("hidden", function(prop, oldV, hidden) {
      setTimeout(()=> autoClose(), 10);
      return hidden;
   });
        
})(document.getElementById("FindToolbar"));

Отсутствует

 

№932514-01-2016 23:46:07

emlen
Участник
 
Группа: Members
Зарегистрирован: 22-05-2015
Сообщений: 201
UA: Firefox 36.0

Re: Custom Buttons

bunda1, теперь вроде нормулик) спасибо еще раз!!!!


SeaMonkey 2.39 forever

Отсутствует

 

Board footer

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