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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№1195126-07-2017 14:46:56

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 54.0

Re: Custom Buttons

bunda1 пишет

А почему имено HTML?

Мне в HTML удобнее.

P.S. Да и привык уже делать экспорт закладок в HTML-файл. :)

Отредактировано unter_officer (26-07-2017 14:50:44)


«The Truth Is Out There»

Отсутствует

 

№1195226-07-2017 19:52:02

Gladius333
Забанен
 
Группа: Members
Зарегистрирован: 11-02-2017
Сообщений: 92
UA: Firefox 54.0

Re: Custom Buttons

unter_officer пишет
bunda1 пишет

А почему имено HTML?

Мне в HTML удобнее.

P.S. Да и привык уже делать экспорт закладок в HTML-файл. :)

Попробуй это, about:config=browser.bookmarks.autoExportHTML, //BookmarksHtml [false=places.sqlite]
Он сохраняет все закладки не в "places.sqlite" как обычно а в html файл, и потом в профиле будешь забирать...

Сразу предупреждаю иконки могут сломаться к закладкам... поэтому делай с бекапом, и вообще надо поэксперементировать с этим, удачи!

Отредактировано Gladius333 (26-07-2017 19:55:54)

Отсутствует

 

№1195326-07-2017 21:01:14

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 39.0

Re: Custom Buttons

Gladius333
Мне это дано известно, что следует из сообщения которое Вы процитировали и в котором говорится, что я и так делаю экспорт закладок в HTML-файл.

Вопрос в том, что слишком далеко добираться до стандартной возможности Экспорта/Импорта закладок:
• Закладки -> Показать все закладки -> Импорт и резервные копии -> Экспорт закладок в HTML-файл…
• Закладки -> Показать все закладки -> Импорт и резервные копии -> Импорт закладок из HTML-файла…

Поэтому я и попросил сделать кнопку, чтобы разместить её на панели и не лазить чёрт знает куда, когда возникает необходимость Экспорта/Импорта.

Отредактировано unter_officer (26-07-2017 21:04:22)


«The Truth Is Out There»

Отсутствует

 

№1195426-07-2017 21:15:01

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

Re: Custom Buttons

unter_officer пишет
bunda1 пишет

А почему имено HTML?

Мне в HTML удобнее.

А если так:

Выделить код

Код:

// "Создать резервную копию закладок на рабочий стол без запроса" в меню "Закладки", от 29.01.2016. ..................
(sep => {
   var menuitem = sep.parentNode.insertBefore(document.createElement("menuitem"), sep);
   menuitem.setAttribute("label", "Создать резервную копию закладок на рабочий стол");
   addDestructor(()=> { menuitem.remove() });
   menuitem.onclick =()=> {
      var file = Services.dirsvc.get("Desk", Ci.nsIFile);
      var path = file.path + "\\bookmarks-" + (new Date()).toLocaleFormat("%Y.%d.%m") + ".json";
      Cu.import("resource://gre/modules/PlacesBackups.jsm", {}).PlacesBackups.saveBookmarksToJSONFile(
         Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile", "initWithPath")(path)
      )

      var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
      custombuttons.alertSlide(self.label, "Сохранил резервную копию закладок на рабочий стол");
      setTimeout(()=> alertsService.closeAlert(), 3000);
   };     
})(document.getElementById("organizeBookmarksSeparator"));

Отсутствует

 

№1195526-07-2017 21:21:44

Gladius333
Забанен
 
Группа: Members
Зарегистрирован: 11-02-2017
Сообщений: 92
UA: Firefox 54.0

Re: Custom Buttons

unter_officer пишет

Gladius333
Мне это дано известно, что следует из сообщения которое Вы процитировали и в котором говорится, что я и так делаю экспорт закладок в HTML-файл.

Вопрос в том, что слишком далеко добираться до стандартной возможности Экспорта/Импорта закладок:
• Закладки -> Показать все закладки -> Импорт и резервные копии -> Экспорт закладок в HTML-файл…
• Закладки -> Показать все закладки -> Импорт и резервные копии -> Импорт закладок из HTML-файла…

Поэтому я и попросил сделать кнопку, чтобы разместить её на панели и не лазить чёрт знает куда, когда возникает необходимость Экспорта/Импорта.

А я понял, кстати я тоже за, интересно как можно вывести его...
Может само меню вывести, хм.... кстати само меню id=maintenanceButton, если есть примеры других кнопок можно подшаманить)

Отредактировано Gladius333 (26-07-2017 21:23:27)

Отсутствует

 

№1195626-07-2017 21:30:57

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 39.0

Re: Custom Buttons

bunda1
Спасибо, но это не то, что хотелось бы.

Во-первых сохраняет не в HTML-файл.
Во-вторых, если уж и лазить в меню "Закладки", то тогда можно и это установить _https://addons.mozilla.org/ru/firefox/addon/export-bookmarks/.

Хотелось бы вынести стандартную возможность Экспорта/Импорта закладок в кнопку, и именно HTML.


«The Truth Is Out There»

Отсутствует

 

№1195726-07-2017 21:35:47

Gladius333
Забанен
 
Группа: Members
Зарегистрирован: 11-02-2017
Сообщений: 92
UA: Firefox 54.0

Re: Custom Buttons

bunda1 пишет
unter_officer пишет
bunda1 пишет

А почему имено HTML?

Мне в HTML удобнее.

А если так:

Выделить код

Код:

// "Создать р.....

Он про эту кнопку, если через ид перекинуть к примеру в контекст меню? или можно в кнопку.
1ApdAVr.png

Отсутствует

 

№1195826-07-2017 21:39:40

Rag
Участник
 
Группа: Members
Откуда: Краснодон
Зарегистрирован: 06-03-2017
Сообщений: 247
UA: Firefox 54.0

Re: Custom Buttons

Gladius333

Что за поведение? мне он всем устрайвает) хотя немного не удобно

Ну а ПКМ на "Вырезать'',''Копировать'',''Свойства''получается нажать? У меня нет, меню закрывается прежде чем я успеваю клацнуть мышкой.

Отсутствует

 

№1195926-07-2017 21:46:18

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

Re: Custom Buttons

Gladius333 пишет

Он про эту кнопку, если через ид перекинуть к примеру в контекст меню? или можно в кнопку.

Просто перекинуть не получится потому что этот пункт находится в другом окне.

Отсутствует

 

№1196026-07-2017 21:47:53

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 39.0

Re: Custom Buttons

Gladius333 пишет

Он про эту кнопку, если через ид перекинуть к примеру в контекст меню? или можно в кнопку.

Gladius333
Я повозился с этим дополнением: _https://addons.mozilla.org/ru/firefox/addon/export-bookmarks/ и мне удалось переместить пункт ЭКСПОРТА в контекст меню (если не ошибаюсь, то сюда: id="contentAreaContextMenu").

Но раз уж установлен Custom Buttons, не хочется пользоваться лишним дополнением. Да и ИМПОРТА там нет, только ЭКСПОРТ.


«The Truth Is Out There»

Отсутствует

 

№1196126-07-2017 21:56:56

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

Re: Custom Buttons

unter_officer
Да вроде в about:config можно указать папку для хранения закладок, если они в HTML. И кнопку не надо.

Отсутствует

 

№1196226-07-2017 22:06:35

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 39.0

Re: Custom Buttons

bunda1
Я так понял, что задача слишком сложная. :)

Тогда не могли бы Вы переделать это дополнение, которое только для Экспорта в HTML-файл https://addons.mozilla.org/ru/firefox/a … bookmarks/, в кнопку? Фиг и ним, с Импортом из HTML.
Очень уж не хочется лишнее дополнение устанавливать.

Отредактировано unter_officer (26-07-2017 22:08:15)


«The Truth Is Out There»

Отсутствует

 

№1196326-07-2017 22:22:06

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

Re: Custom Buttons

unter_officer пишет

bunda1
Я так понял, что задача слишком сложная. :)
Тогда не могли бы Вы переделать это дополнение, которое только для Экспорта в HTML-файл https://addons.mozilla.org/ru/firefox/a … bookmarks/, в кнопку? Фиг и ним, с Импортом из HTML.
Очень уж не хочется лишнее дополнение устанавливать.

Завтра посмотрю.

Отсутствует

 

№1196426-07-2017 23:49:52

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 39.0

Re: Custom Buttons

Что касается этой кнопки:

bunda1 пишет

Создать резервную копию закладок на рабочий стол без запроса" в меню "Закладки"

Выделить код

Код:

// "Создать резервную копию закладок на рабочий стол без запроса" в меню "Закладки", от 29.01.2016. ..................
(sep => {
   var menuitem = sep.parentNode.insertBefore(document.createElement("menuitem"), sep);
   menuitem.setAttribute("label", "Создать резервную копию закладок на рабочий стол");
   addDestructor(()=> { menuitem.remove() });
   menuitem.onclick =()=> {
      var file = Services.dirsvc.get("Desk", Ci.nsIFile);
      var path = file.path + "\\bookmarks-" + (new Date()).toLocaleFormat("%Y.%d.%m") + ".json";
      Cu.import("resource://gre/modules/PlacesBackups.jsm", {}).PlacesBackups.saveBookmarksToJSONFile(
         Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile", "initWithPath")(path)
      )

      var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
      custombuttons.alertSlide(self.label, "Сохранил резервную копию закладок на рабочий стол");
      setTimeout(()=> alertsService.closeAlert(), 3000);
   };     
})(document.getElementById("organizeBookmarksSeparator"));

То можно и в HTML:

Выделить код

Код:

(sep => {
   var menuitem = sep.parentNode.insertBefore(document.createElement("menuitem"), sep);
   menuitem.setAttribute("label", "Создать резервную копию закладок на рабочий стол");
   addDestructor(()=> { menuitem.remove() });
   menuitem.onclick =()=> {
      var file = Services.dirsvc.get("Desk", Ci.nsIFile);
      var path = file.path + "\\bookmarks-" + (new Date()).toLocaleFormat("%Y.%d.%m") + ".html";
      Cu.import("resource://gre/modules/BookmarkHTMLUtils.jsm", {}).BookmarkHTMLUtils.exportToFile(
         Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile", "initWithPath")(path)
      )

      var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
      custombuttons.alertSlide(self.label, "Сохранил резервную копию закладок на рабочий стол");
      setTimeout(()=> alertsService.closeAlert(), 3000);
   };     
})(document.getElementById("organizeBookmarksSeparator"));

Но всё же хочется с выбором папки, куда сохранять.
И чтобы всё это было не в меню "Закладки", а при нажатии на кнопку.
Так же хочется ещё и Импорт закладок из HTML-файла.


P.S. Код, который я дал, хоть и рабочий, но в консоль браузера пишет ошибку. Заметил я это только сегодня. Как исправить эту ошибку я не знаю.
Пишет что-то типа: Passing an nsIFile to BookmarksHTMLUtils.exportToFile is deprecated. Please use an OS.File path string instead. https://developer.mozilla.org/docs/JavaScript_OS.File

Отредактировано unter_officer (27-07-2017 13:44:50)


«The Truth Is Out There»

Отсутствует

 

№1196527-07-2017 22:55:30

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

Re: Custom Buttons

unter_officer пишет

Но всё же хочется с выбором папки, куда сохранять.
И чтобы всё это было не в меню "Закладки", а при нажатии на кнопку.
Так же хочется ещё и Импорт закладок из HTML-файла.

По быстрому:

Выделить код

Код:

this.onmousedown =e=> {
   if ( e.button == 0 )
        self.timer = setTimeout(()=> {     
           self.onmouseup = '';           
           setPathToBookmarksFolder();
        }, 500);
        
   this.onmouseup =e=> {
        if ( e.button ) return;
        clearTimeout(self.timer);           
        exportsBookmarksToHTMLFile();        
   }
   
   if ( e.button == 1 )
        openBookmarksFolder();
        
   if ( e.button == 2 ) 
        gShowPopup(this);
        
};
self.onclick =e=> e.preventDefault();


function exportsBookmarksToHTMLFile() {
   var path = getPathToBookmarksFolder();  
   var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
   file.initWithPath(path);
      
   var path = file.path + "\\bookmarks-" + (new Date()).toLocaleFormat("%Y.%d.%m") + ".html";
   Cu.import("resource://gre/modules/BookmarkHTMLUtils.jsm", {}).BookmarkHTMLUtils.exportToFile(
      Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile", "initWithPath")(path)
   )

   var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
   custombuttons.alertSlide("Экспорт закладок в HTML-файл", "Сохранил резервную копию закладок в " + path);
   setTimeout(()=> alertsService.closeAlert(), 3000);
};


function openBookmarksFolder() {
   var path = getPathToBookmarksFolder();
   var folder = Components.Constructor("@mozilla.org/file/local;1", "nsIFile", "initWithPath")(path);
   folder.exists() && folder.launch();
};


function setPathToBookmarksFolder() {     
   var fp = window.makeFilePicker();
   fp.init(window, "Укажите папку для сохранения закладок!", fp.modeGetFolder);
   fp.open(result => result == fp.returnOK && cbu.setPrefs("CB.exportsBookmarksToHTMLFile.path", convertFromUnicode("UTF-8", fp.file.path)));
};


function getPathToBookmarksFolder() {     
   try { var path = Services.prefs.getComplexValue("CB.exportsBookmarksToHTMLFile.path", Ci.nsISupportsString).data } 
   catch(e) { path = "C:\\" };
   return path;
};


function convertFromUnicode(charset, str) {
   var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
   converter.charset = charset;
   str = converter.ConvertFromUnicode(str);
   return str + converter.Finish();
};


this.onmouseover =()=> { 
   var path = getPathToBookmarksFolder();
   this.tooltipText = "Л: Экспорт закладок в HTML-файл \nДЛ: Установить папку для сохранения закладок\
                     \nС: Открыть папку для сохранения закладок \nП: CB меню\n\nПапка для сохранения закладок без запроса:\n" + path;
};

Насчёт импорт закладок я подумаю, пока не знаю что за код в Firefox отвечает за это.

Отсутствует

 

№1196627-07-2017 23:59:58

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 43.0

Re: Custom Buttons

bunda1 пишет

По быстрому

В принципе всё работает, но при сохранении файла появляется ошибка в консоли:

DEPRECATION WARNING: Passing an nsIFile to BookmarksHTMLUtils.exportToFile is deprecated. Please use an OS.File path string instead.
You may find more details about this deprecation at: https://developer.mozilla.org/docs/JavaScript_OS.File
resource://gre/modules/BookmarkHTMLUtils.jsm 210 BHU_exportToFile
chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button6@init line 1 > Function 32 exportsBookmarksToHTMLFile
chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button6@init line 1 > Function 13 anonymous/this.onmousedown/this.onmouseup


«The Truth Is Out There»

Отсутствует

 

№1196728-07-2017 02:28:18

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 43.0

Re: Custom Buttons

bunda1 пишет
unter_officer пишет

bunda1
Я так понял, что задача слишком сложная. :)
Тогда не могли бы Вы переделать это дополнение, которое только для Экспорта в HTML-файл https://addons.mozilla.org/ru/firefox/a … bookmarks/, в кнопку? Фиг и ним, с Импортом из HTML.
Очень уж не хочется лишнее дополнение устанавливать.

Завтра посмотрю.

bunda1
А Вы это дополнение не ковыряли? Там четыре совсем маленьких файла, может проще его в кнопку переделать?


«The Truth Is Out There»

Отсутствует

 

№1196828-07-2017 08:58:16

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

Re: Custom Buttons

unter_officer пишет

В принципе всё работает, но при сохранении файла появляется ошибка в консоли:

Выделить код

Код:

this.onmousedown =e=> {
   if ( e.button == 0 )
        self.timer = setTimeout(()=> {     
           self.onmouseup = '';           
           setPathToBookmarksFolder();
        }, 500);
        
   this.onmouseup =e=> {
        if ( e.button ) return;
        clearTimeout(self.timer);           
        exportsBookmarksToHTMLFile();        
   }
   
   if ( e.button == 1 )
        openBookmarksFolder();
        
   if ( e.button == 2 ) 
        gShowPopup(this);
};
self.onclick =e=> e.preventDefault();


function exportsBookmarksToHTMLFile() {
   var path = getPathToBookmarksFolder();  
   var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
   file.initWithPath(path);
   var path = file.path + "\\bookmarks-" + (new Date()).toLocaleFormat("%Y.%d.%m") + ".html";
   Cu.import("resource://gre/modules/BookmarkHTMLUtils.jsm");
   BookmarkHTMLUtils.exportToFile(path).then(null, Cu.reportError);

   var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
   custombuttons.alertSlide("Экспорт закладок в HTML-файл", "Сохранил резервную копию закладок в " + path);
   setTimeout(()=> alertsService.closeAlert(), 3000);
};


function openBookmarksFolder() {
   var path = getPathToBookmarksFolder();
   var folder = Components.Constructor("@mozilla.org/file/local;1", "nsIFile", "initWithPath")(path);
   folder.exists() && folder.launch();
};


function setPathToBookmarksFolder() {     
   var fp = window.makeFilePicker();
   fp.init(window, "Укажите папку для сохранения закладок!", fp.modeGetFolder);
   fp.open(result => result == fp.returnOK && cbu.setPrefs("CB.exportsBookmarksToHTMLFile.path", convertFromUnicode("UTF-8", fp.file.path)));
};


function getPathToBookmarksFolder() {     
   try { var path = Services.prefs.getComplexValue("CB.exportsBookmarksToHTMLFile.path", Ci.nsISupportsString).data } 
   catch(e) { path = "C:\\" };
   return path;
};


function convertFromUnicode(charset, str) {
   var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
   converter.charset = charset;
   str = converter.ConvertFromUnicode(str);
   return str + converter.Finish();
};


this.onmouseover =()=> { 
   var path = getPathToBookmarksFolder();
   this.tooltipText = "Л: Экспорт закладок в HTML-файл \nДЛ: Установить папку для сохранения закладок\
                     \nС: Открыть папку для сохранения закладок \nП: CB меню\n\nПапка для сохранения закладок без запроса:\n" + path;
};
unter_officer пишет

bunda1
А Вы это дополнение не ковыряли? Там четыре совсем маленьких файла, может проще его в кнопку переделать?

Посмотрел и что то позаимствовал для экспорта, но там нет ничего о импорте закладок, если ты об этом.

Отсутствует

 

№1196928-07-2017 11:18:21

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

Re: Custom Buttons

unter_officer
:/ Вроде добавил импорт закладок из HTML-файла:

Выделить код

Код:

this.onmousedown =e=> {
   if ( e.button == 0 ) {
        self.timer = setTimeout(()=> {     
           self.onmouseup = '';           
           setPathToBookmarksFolder();
        }, 500);
        
        this.onmouseup =e=> {
           clearTimeout(self.timer);           
           exportsBookmarksToHTMLFile();        
           }
        }
   
   if ( e.button == 1 ) {
        self.timer = setTimeout(()=> {     
           self.onmouseup = '';           
           importBookmarksOutHTMLFile(); 
        }, 500);
        
        this.onmouseup =e=> {
           clearTimeout(self.timer);           
           openBookmarksFolder();        
           }
        }       
        
   if ( e.button == 2 ) gShowPopup(this);
};
self.onclick =e=> e.preventDefault();


function importBookmarksOutHTMLFile() {
   var fp = window.makeFilePicker();
   fp.init(window, "Выберите HTML-файл для импорта закладок", fp.modeOpen);
   fp.appendFilters(fp.filterHTML);
   if ( fp.show() == fp.returnCancel ) return;

   Cu.import("resource://gre/modules/BookmarkHTMLUtils.jsm");
   BookmarkHTMLUtils.importFromFile(fp.file.path).then(null, Cu.reportError);
};


function exportsBookmarksToHTMLFile() {
   var path = getPathToBookmarksFolder();  
   var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
   file.initWithPath(path);
   var path = file.path + "\\bookmarks-" + (new Date()).toLocaleFormat("%Y.%d.%m") + ".html";
   
   Cu.import("resource://gre/modules/BookmarkHTMLUtils.jsm");
   BookmarkHTMLUtils.exportToFile(path).then(null, Cu.reportError);

   var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService)
   custombuttons.alertSlide("Экспорт закладок в HTML-файл", "Сохранил копию закладок как HTML-файл в " + path);
   setTimeout(()=> alertsService.closeAlert(), 3000);
};


function openBookmarksFolder() {
   var path = getPathToBookmarksFolder();
   var folder = Components.Constructor("@mozilla.org/file/local;1", "nsIFile", "initWithPath")(path);
   folder.exists() && folder.launch();
};


function setPathToBookmarksFolder() {     
   var fp = window.makeFilePicker();
   fp.init(window, "Укажите папку для экспорта закладок!", fp.modeGetFolder);
   fp.open(result => result == fp.returnOK && cbu.setPrefs("CB.exportsBookmarksToHTMLFile.path", convertFromUnicode("UTF-8", fp.file.path)));
};


function getPathToBookmarksFolder() {     
   try { return Services.prefs.getComplexValue("CB.exportsBookmarksToHTMLFile.path", Ci.nsISupportsString).data } 
   catch(e) { return "C:\\" };
};


function convertFromUnicode(charset, str) {
   var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
   converter.charset = charset;
   str = converter.ConvertFromUnicode(str);
   return str + converter.Finish();
};


this.onmouseover =()=> { 
   var path = getPathToBookmarksFolder();
   this.tooltipText = "Л:   Экспорт закладок в HTML-файл \nДЛ: Установить папку для экспорта закладок\
                     \nС:   Открыть папку для экспорта закладок \nДС: Импорт закладок из HTML-файла\
                     \nП:   CB меню\n\nПапка для экспорта закладок, без запроса:\n" + path;
};

Отсутствует

 

№1197028-07-2017 13:58:07

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 43.0

Re: Custom Buttons

bunda1 пишет

Вроде добавил импорт закладок из HTML-файла

У меня как-то странно работает.
1. На нажатие средней кнопки не реагирует вообще.
2. Если один раз сделать экспорт, то после этого, при нажатии правой кнопки, вместе с появлением меню кнопки параллельно опять делается экспорт.


«The Truth Is Out There»

Отсутствует

 

№1197128-07-2017 14:16:29

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

Re: Custom Buttons

unter_officer пишет
bunda1 пишет

Вроде добавил импорт закладок из HTML-файла

У меня как-то странно работает.
1. На нажатие средней кнопки не реагирует вообще.

А что консоль?

Отсутствует

 

№1197228-07-2017 20:40:03

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 43.0

Re: Custom Buttons

bunda1 пишет

А что консоль?

В консоли всё чистенько.

bunda1
Я почти не разбираюсь в написании кода. Но у меня появился вопросик. Почему бы не сделать что-то похожее на это:
untitlgdg.png
Нажимаешь на кнопку - появляется меню.
Если в меню выбираешь Экспорт, то открывается стандартное окно браузера с выбором папки сохранения.
Если выбираешь Импорт, то опять же, открывается стандартное окно браузера с выбором файла для импорта.

И не надо будет мудрить с короткими/длинными кликами разных кнопок мыши, в которых можно запутаться.

P.S. Кстати. То дополнение, ссылку на которое я Вам давал несколькими постами выше, при экспорте закладок работает именно по такому алгоритму.


«The Truth Is Out There»

Отсутствует

 

№1197328-07-2017 21:40:56

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

Re: Custom Buttons

unter_officer пишет

Почему бы не сделать что-то похожее на это:
http://redload.ru/images/untitlgdg.png
Нажимаешь на кнопку - появляется меню.
Если в меню выбираешь Экспорт, то открывается стандартное окно браузера с выбором папки сохранения.
Если выбираешь Импорт, то опять же, открывается стандартное окно браузера с выбором файла для импорта.

Ну что же ты сразу это не просил :(  Дай иконки из изображения и будет меню.

Отсутствует

 

№1197428-07-2017 22:17:18

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

Re: Custom Buttons

unter_officer
Вот заготовка, только иконки замени на свои:

Выделить код

Код:

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%u042D%u043A%u0441%u043F%u043E%u0440%u0442%20%u0438%u043B%u0438%20%u0438%u043C%u043F%u043E%u0440%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u043A%u0430%u043A%20HTML-%u0444%u0430%u0439%u043B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//rq7///////////////////////9eXv////////////9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/////////////////////////////Xl7/////////////Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////+urv//Xl7//15e//9eXv//Xl7/////////////Xl7//15e//9eXv//Xl7/////////////3Nz//9jY/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////9eXv/////////////c3P//2Nj/////////////Xl7//15e//9eXv//Xl7//66u////////////////////////Xl7/////////////////////////////rq7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bself._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%0A%0Avar%20array%20%3D%20%5B%0A%20%20%20%5B%20%22%u042D%u043A%u0441%u043F%u043E%u0440%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0432%20HTML-%u0444%u0430%u0439%u043B%22%2C%20%22exportsBookmarksToHTMLFile%28true%29%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAACPVBMVEX09ff////C3L+Uq8+Vq8+Uqs+Zr9CZrtCZr9Gfu+ear8+mt9JRf8ORxl3t8vfF06+Twojs8/d9otl8o9s+aquZrs/X9KLp8Pft8fZhisf//+DBzN2hveihv+pii8hti9pgicl6oNlojs1zncNsi836/P2duebx8/eYyWqBp+Gn0IKBvlKHsm9qmaVuk8zt7/FEbauEv1Tp7/JdhL9oi9Pl8e2LwlmdsdD7/P76+/3H7ofo8+peh8eHwFaSteZ0pkp2gl7q8/Ohy5OApt2by2eZuOqbuOWaezWuvtd7nN2HvWxul9Ty9feQxV5ljcqBp+JEcLCVtOOo0nR7odx5n9suX6Z1mtBzmtSXyGPv9PewzfOzx+O6zu/s8fd9o95Xfrthi8lYhMN5oNnw9ffw9Pjw9Pf8/f6ewO/m8O9zmdE6aapsjdyUwouPxWPDzd6XteOSs9B5nNVpnpqHt7h/s6F6n9d7ntSTttGHwVh4qp+Ev1HH7ox6qk5wj+Hm8e3t9fOm0IKAtqOBpNrx+P9ljcyhs9FpkM2hv+/u8/fF0eOLu4N+vFKgzX3p9OSFqN13qExekIl4n9j7/P3x9PhxmNDm8e9Vg8Zfkozr8veq0YTX9qL//92AtamOwnHFz96Fot1diMh+pd13ntmatu+YyW/3+/+Tqs5UgcShzJNbhsdTf8GHs7bo8PaXtuqMr+Ty8/SZt+SUqs7r7Ox3ndb9/f7t8feZyXGYyWWCpNbz9PRuiteNtNDn7/V4ntjx8fGo3JqNAAAAv3RSTlP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AEVuhDkAAAD+SURBVBhXY5jHzcUMAqxAICq9bx8D96adDFAgaGQOFOBaH7h7zoqZDTlFyptncAAFWBjyi52CXCI0unRLxcECPhsatbbzmlXMnS60hg0kkOxW0uNrq93tNaFpD1ggUm21QK532ZQdSm1hmXKdDCwdnOWVOi1RjNGMQCCrwMDMJ8NZ4LAynVGPkXFp8zpJBubYmn579wXtqhZb0iwn9a1iWLaViYmJ3891obOwYtLEvcYMGyWAAkwJdv6accEhi8LjGVr11SenpC5f61g3NcO0vjCAIc+DjZ2dnWexddWSbYa9nlkM+8BgWsxsK7FZ1VLzRaACNokmtdnyu1QMQgF7Rlh4zWWTAwAAAABJRU5ErkJggg%3D%3D%22%5D%2C%0A%20%20%20%5B%20%22%u0418%u043C%u043F%u043E%u0440%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0438%u0437%20HTML-%u0444%u0430%u0439%u043B%u0430%22%2C%20%22importBookmarksOutHTMLFile%28%29%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAI2bv/9RVpf/AAAAAAAAAAAAAAAAAAAA/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/AAAAAAAAAACIkvD/Jia6/ywpq/8AAAAAAAAAAAAAAAAAAAD/AAAA/wbwAf90qpv/Ymic/1RWqP9OUKr/W2Ch/2dumf9YYKT/Ly/B/xQP3/8MB9P/JCGb/wAAAAAAAAAAAAAAAAAAAP8G8AH/U5ea/ycr8f8VIP3/HiP4/ywo8v8sIvb/LCL2/ywi9v8KBOj/BQDe/wQAtv8tK4P/AAAAAAAAAAAAAAD/BvAB/3Sqm/9iaJz/Tim3/0UuuP9GPrT/R0ex/zk8uf8gIMz/FRDe/xEMzv8jIJz/AAAAAAAAAAAAAAAAAAAA/wbwAf8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAP8AAAD/SqOR/yImvP8sLKj/AAAAAAAAAAAAAAAAAAAAAAAAAP8G8AH/BvAB/wbwAf8AAAD/AAAA/wAAAP8AAAD/BvAB/3Sqm/9KW5r/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8G8AH/BvAB/wbwAf8AAAAAAAAAAAAAAAAAAAAABvAB/wbwAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/BvAB/wbwAf8G8AH/AAAAAAAAAAAAAAAAAAAAAAAAAAAG8AH/AAAAAAAAAP8G8AH/AAAAAAAAAAAAAAAAAAAA/wbwAf8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAP8G8AH/BvAB/wbwAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BvAB/wbwAf8AAAAAAAAA/wAAAP8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/AAAAAAAAAAAG8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOesQQBjrEGAAaxBwACsQcABrEHDg6xBwAesQcAPrEHAD6xBw8+sQcPprEHD8axBwAGsQQABrEGAAaxB//+sQQ%3D%3D%22%5D%2C%20%20%0A%20%20%20%5B%20%22separator%22%20%5D%2C%0A%20%20%20%5B%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%2C%20%22openBookmarksFolder%28false%29%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADzqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv8E/yT/lcsO//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv8E/yT/BP8k/wT/JP+Vyw7/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv8E/yT/BP8k/wT/JP8E/yT/BP8k/5XLDv/zqgD/86oA//I1///yNf//86oA//OqAP/zqgD/86oA//OqAP+Vyw7/lcsO/wT/JP8E/yT/BP8k/5XLDv+Vyw7/86oA//OqAP/yNf//8jX///OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP+Vyw7/BP8k/5XLDv/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/lcsO/wT/JP+Vyw7/86oA//OqAP/zqgD/86oA//02AP/9NgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv8E/yT/lcsO//OqAP/zqgD/86oA//OqAP/9NgD//TYA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP+Vyw7/BP8k/5XLDv/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/lcsO/wT/JP+Vyw7/86oA//OqAP/zqgD/86oA/wA31v8AN9b/86oA//9If///SH//86oA//OqAP/zqgD/86oA/5XLDv8E/yT/lcsO//OqAP/zqgD/86oA//OqAP8AN9b/ADfW//OqAP//SH///0h///OqAP/zqgD/86oA//OqAP+Vyw7/BP8k/5XLDv/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/lcsO/5XLDv+Vyw7/86oA//OqAP/zqgD/86oA/0CA//9AgP//86oA/07+9f9O/vX/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP9AgP//QID///OqAP9O/vX/Tv71//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%5D%2C%0A%20%20%20%5B%20%22%u042D%u043A%u0441%u043F%u043E%u0440%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0432%20HTML-%u0444%u0430%u0439%u043B%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%20%u043D%u0430%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u0435%22%2C%20%22exportsBookmarksToHTMLFile%28%29%22%2C%20false%20%5D%0A%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28m%2Ci%29%3D%3E%20%7B%0A%20%20%20if%20%28%20m%5B0%5D%20%3D%3D%20%22separator%22%20%29%20%7B%20menuPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20var%20mItem%20%3D%20menuPopup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m%5B0%5D%29%3B%0A%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20mItem.setAttribute%28%22image%22%2C%20m%5B2%5D%20%7C%7C%20array%5Bi-1%5D%5B2%5D%29%3B%20%0A%20%20%20mItem.addEventListener%28%22command%22%2C%20%28%29%3D%3E%20eval%28m%5B1%5D%29%29%3B%0A%7D%29%3B%0AmenuPopup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0Afunction%20importBookmarksOutHTMLFile%28%29%20%7B%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0412%u044B%u0431%u0435%u0440%u0438%u0442%u0435%20HTML-%u0444%u0430%u0439%u043B%20%u0434%u043B%u044F%20%u0438%u043C%u043F%u043E%u0440%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%2C%20fp.modeOpen%29%3B%0A%20%20%20fp.appendFilters%28fp.filterHTML%29%3B%0A%20%20%20Cu.import%28%22resource%3A//gre/modules/FileUtils.jsm%22%29%3B%0A%20%20%20fp.displayDirectory%20%3D%20FileUtils.File%28getPathToBookmarksFolder%28%29%29%3B%0A%20%20%20if%20%28%20fp.show%28%29%20%3D%3D%20fp.returnCancel%20%29%20return%3B%0A%0A%20%20%20Cu.import%28%22resource%3A//gre/modules/BookmarkHTMLUtils.jsm%22%29%3B%0A%20%20%20BookmarkHTMLUtils.importFromFile%28fp.file.path%29.then%28null%2C%20Cu.reportError%29%3B%0A%7D%3B%0A%0A%0Afunction%20exportsBookmarksToHTMLFile%28saveAs%29%20%7B%0A%20%20%20saveAs%20%26%26%20setPathToBookmarksFolder%28%29%3B%0A%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20file.initWithPath%28getPathToBookmarksFolder%28%29%29%3B%0A%20%20%20var%20path%20%3D%20file.path%20+%20%22%5C%5Cbookmarks-%22%20+%20%28new%20Date%28%29%29.toLocaleFormat%28%22%25Y.%25d.%25m%22%29%20+%20%22.html%22%3B%0A%20%20%20%0A%20%20%20Cu.import%28%22resource%3A//gre/modules/BookmarkHTMLUtils.jsm%22%29%3B%0A%20%20%20BookmarkHTMLUtils.exportToFile%28path%29.then%28null%2C%20Cu.reportError%29%3B%0A%0A%20%20%20if%20%28%20saveAs%20%29%20return%3B%0A%20%20%20var%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%20%22%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u043B%20%u043A%u043E%u043F%u0438%u044E%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u043A%u0430%u043A%20HTML-%u0444%u0430%u0439%u043B%20%u0432%20%22%20+%20path%29%3B%0A%20%20%20setTimeout%28%28%29%3D%3E%20alertsService.closeAlert%28%29%2C%203500%29%3B%0A%7D%3B%0A%0A%0Afunction%20openBookmarksFolder%28%29%20%7B%0A%20%20%20var%20folder%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20folder.initWithPath%28getPathToBookmarksFolder%28%29%29%3B%0A%20%20%20folder.launch%28%29%3B%0A%7D%3B%0A%0A%0Afunction%20setPathToBookmarksFolder%28%29%20%7B%20%20%20%20%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0430%u043F%u043A%u0443%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%21%22%2C%20fp.modeGetFolder%29%3B%0A%20%20%20if%20%28%20fp.show%28%29%20%3D%3D%20fp.returnCancel%20%29%20return%3B%0A%20%20%20cbu.setPrefs%28%22CB.exportsBookmarksToHTMLFile.path%22%2C%20convertFromUnicode%28%22UTF-8%22%2C%20fp.file.path%29%29%3B%0A%7D%3B%0A%0A%0Afunction%20getPathToBookmarksFolder%28%29%20%7B%20%20%20%20%20%0A%20%20%20try%20%7B%20return%20Services.prefs.getComplexValue%28%22CB.exportsBookmarksToHTMLFile.path%22%2C%20Ci.nsISupportsString%29.data%20%7D%20%0A%20%20%20catch%28e%29%20%7B%20return%20%22C%3A%5C%5C%22%20%7D%3B%0A%7D%3B%0A%0A%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0A%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%20%0A%20%20%20var%20path%20%3D%20getPathToBookmarksFolder%28%29%3B%0A%20%20%20this.tooltipText%20%3D%20self.label%20+%20%22%5Cn%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%5Cn%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%5Cn%5Cn%u041F%u0430%u043F%u043A%u0430%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%2C%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%3A%5Cn%22%20+%20path%3B%0A%7D%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

Отсутствует

 

№1197528-07-2017 22:27:43

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 599
UA: Firefox 43.0

Re: Custom Buttons

bunda1 пишет

Вот заготовка, только иконки замены на свои

Всё отлично работает, кроме: "Открыть папку для экспорта закладок"

untitlvnv.png

В консоли всё чисто.

Отредактировано unter_officer (28-07-2017 22:28:12)


«The Truth Is Out There»

Отсутствует

 

Board footer

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