ru-board ни разу не получилось...
Значит, ru-board где-то уже есть в закладках.
При нажатии ЛКМ закладки сайтов имеют название отличающееся от закладок тех же сайтов, но по СКМ - может из-за этого?
По СКМ кнопка не пользуется компонентом nsINavBookmarksService, а вызывает функцию браузера, так что да, видимо, поэтому.
Добавлено 31-03-2011 16:31:54
Сделайте пожалуйста, чтобы сохранялись закладки с именами, как сейчас при нажатии СКМ
Но только без проверки на наличие дубликатов, ок ? Надо заменить
var sebp = StarUI. showEditBookmarkPopup; StarUI. showEditBookmarkPopup = function () {}; PlacesCommandHook. bookmarkCurrentPage (false, f); StarUI. showEditBookmarkPopup = sebp;
на
var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab); bmsvc. insertBookmark (f, br. webNavigation. currentURI, bmsvc. DEFAULT_INDEX, "");
Отредактировано Anton (31-03-2011 16:32:14)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
ну я и торможу - тренировался на страницах, которые уже были в закладках!
Но только без проверки на наличие дубликатов, ок ? Надо заменить
ок, теперь абсолютно все страницы классно добавляются! ТО что нужно!!!
Но сейчас, что по ЛКМ или по СКМ названия закладок - это ее адрес страницы! А нужно наоборот, чтобы было заглавие:
например, закладка на текущую страницу должна называться "Custom Buttons | Форум Mozilla Россия"
Отсутствует
Но сейчас, что по ЛКМ или по СКМ названия закладок - это ее адрес страницы!
Вообще-то так было с самого начала.
ps:
this.tooltipText = "Left => все открытие вкладки в папку закладок\nMiddle => добавление вкладки в папку закладок\nRight => удалить папку закладок\nCtrl+Right => контекстное меню "; var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var folderName = "Новая папка"; var rootFolder = bmsvc. toolbarFolder; this. onclick = function(event) { var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); if (event. button == 0) { // Действие при клике ЛКМ function getTabsURIs () { var tabList = []; var seenURIs = []; var br, webNav, uri; var tabs = getBrowser (). mTabs; for (var i = 0; i < tabs. length; ++i) { br = gBrowser. getBrowserForTab (tabs [i]); var webNav = br. webNavigation; uri = webNav. currentURI; if (uri. spec in seenURIs) continue; seenURIs [uri. spec] = true; LOG ("uri: " + uri + ", label = " + tabs [i]. label); tabList. push ({ uri: uri, label: tabs [i]. label }); } return tabList; } var f = getChildFolder (rootFolder, folderName); if (!f) { bmsvc. createFolder (rootFolder, folderName, bmsvc. DEFAULT_INDEX); f = getChildFolder (rootFolder, folderName); } var uris = getTabsURIs (); var ios = Components. classes ["@mozilla.org/network/io-service;1"]. getService (Components. interfaces. nsIIOService); var uri; bmsvc. runInBatchMode ( { runBatched: function (data) { for (var i = 0; i < uris. length; i++) bmsvc. insertBookmark (f, uris [i]. uri, bmsvc. DEFAULT_INDEX, uris [i]. label); } }, null ); } else if (event. button == 1) { // Действие при клике СКМ var f = getChildFolder (rootFolder, folderName); if (!f) { bmsvc. createFolder (rootFolder, folderName, bmsvc. DEFAULT_INDEX); f = getChildFolder (rootFolder, folderName); } var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab); bmsvc. insertBookmark (f, br. webNavigation. currentURI, bmsvc. DEFAULT_INDEX, gBrowser. mCurrentTab. label); // var sebp = StarUI. showEditBookmarkPopup; // StarUI. showEditBookmarkPopup = function () {}; // PlacesCommandHook. bookmarkCurrentPage (false, f); // StarUI. showEditBookmarkPopup = sebp; } else if (event. button == 2 && !event. ctrlKey && !event. shiftKey && !event. altKey && !event. metaKey) { // Действие при клике ПКМ без модификаторов var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var f = getChildFolder (rootFolder, folderName); if (f) bmsvc. removeItem (f); } }; this. oncontextmenu = function (event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; function getChildFolder (parentId, title) { var res = null; try { var hs = Cc ["@mozilla.org/browser/nav-history-service;1"]. getService (Ci. nsINavHistoryService); var options = hs. getNewQueryOptions (); options. excludeItems = true; var query = hs. getNewQuery (); query. setFolders ([parentId], 1); var result = hs. executeQuery (query, options); var rn = result. root; rn. containerOpen = true; var i, node; for (i = 0; i < rn. childCount; i++) { var node = rn. getChild (i); if (node. title == title) { res = node. itemId; break; } } rn. containerOpen = false; } catch (e) {} return res; }
Отредактировано Anton (31-03-2011 18:05:39)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
Все работает!!! Спасибо за труды и за терпение!
Вообще-то так было с самого начала.
не совсем так (по ЛКМ - адрес в имени, по СКМ - заглавие сайта в имени) + была проверка на наличие дубликатов...
Сейчас всё идеально!
Отсутствует
Друзья !!! Как сделать так что бы страница добавлялась в закладки одним нажатием кнопки в меню закладок !!!
var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab); bmsvc. insertBookmark (bmsvc. bookmarksMenuFolder, br. webNavigation. currentURI, bmsvc. DEFAULT_INDEX, gBrowser. mCurrentTab. label);
Добавлено 31-03-2011 20:00:33
Anton
А не поможешь мне с кнопочкой?
Может, лучше к автору кнопки обратиться ? : )
Добавлено 31-03-2011 20:07:14
Кто-нибудь, пожалуйста, облагородьте вот эту кнопку - в ней
1. контестное меню для вещей внутри кнопки - с прозрачным фоном
Надо заменить "popup" на "menupopup", строку для замены искать вместе с кавычками.
2. при удалении какой-то вещи из списка - вылезает ненужное оповещение (хотелось бы его убрать)
Надо заменить
addMenuItem(context, "Remove Item?",null,this.image, null, "alert(document.popupNode.label); document.popupNode.parentNode.parentNode.removeNode(document.popupNode);");
на
addMenuItem(context, "Remove Item?",null,this.image, null, "document.popupNode.parentNode.parentNode.removeNode(document.popupNode);");
Добавлено 31-03-2011 20:26:35
6. хотелось бы чтоб мидл-клик не закрывал бы контекстное меню кнопки
Он и так не закрывает.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
спасибо, так уже лучше. И в принципе хрен с ним с драг-н-дропом и с папочками (хотя бы на первое время), но можно ли сделать сейв автоматическим раз в 15 минут и при выходе из браузера?
mzfx
Отсутствует
Осталось убрать пару ненужных кнопок из адресной строки: подписаться на ленту новостей и редактировать эту закладку !!!
Убрал:
#feed-button {
display: none !important;
}
/* Убрать значёк добавить страницу в закладки */
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
#star-button {
display: none !important;
}
Отсутствует
но можно ли сделать сейв автоматическим раз в 15 минут и при выходе из браузера?
Мне проще сделать его по добавлению пункта меню.
Удаляем
Меняем
на
и
на
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Если не сложно, исправьте, пожалуйста, кнопку Add-on's (Firefox) отсюда — не работает правая кнопка мыши.
И заодно пригодилась бы кнопочка с выпадающим меню из двух пунктов: «Открыть папку текущего профиля» и «Открыть папку установки Firefox». Это возможно?
Отсутствует
кнопочка с выпадающим меню из двух пунктов: «Открыть папку текущего профиля» и «Открыть папку установки Firefox»
/*Initialization Code*/ var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onclick="this. parentNode. handleClick (event);"> <menuitem label="Открыть папку текущего профиля" value="ProfD"/> <menuitem label="Открыть папку установки Firefox" value="CurProcD"/> </menupopup>; this. appendChild (custombuttonsUtils. makeXML (menu)); this. type = "menu"; this. orient = "horizontal"; this. handleClick = function (event) { var menuitem = event. target; var value = menuitem. getAttribute ("value"); if (event. button == 0) { var file = Cc ["@mozilla.org/file/directory_service;1"]. getService (Ci. nsIProperties); file = file. get (value, Ci. nsIFile). QueryInterface (Ci. nsILocalFile); file. launch (); } this. open = false; };
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Chis
vv07
Вот этот:
var obj = { notification: "addons-background-update-complete", prefName: "extensions.update.enabled", extsUpdateEnabled: true, get os () { return Cc ["@mozilla.org/observer-service;1"]. getService (Ci. nsIObserverService); }, run: function () { Cu. import ("resource://gre/modules/AddonManager.jsm", this); this. extsUpdateEnabled = cbu. getPrefs (this. prefName); cbu. setPrefs (this. prefName, true); this. os. addObserver (this, this. notification, false); this. AddonManagerPrivate. backgroundUpdateCheck (); }, observe: function (s, t, d) { if (t == this. notification) { this. os. removeObserver (this, this. notification); cbu. setPrefs (this. prefName, this. extsUpdateEnabled); gBrowser. selectedTab = gBrowser. addTab ("about:addons"); LOG ("done"); } } }; obj. run ();
запускает поиск обновлений, после завершения обновления открывает вкладку about:addons и переключается на неё.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
В "Готовых кнопках" (пост №19) есть кнопка для запуска внешнего приложения. Никак не могу заставить ее запускать cmd (или bat) файл расположенный в папке пользовательского профиля FF.
startProcess("%APPDATA%\\Mozilla\\Firefox\\Profiles\\Inko7.default\\bb-drop-in.cmd",[""]);
function startProcess(path, args) {
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(path);
if(file.exists()) {
var process = Components.classes["@mozilla.org/process/util;1"]
.createInstance(Components.interfaces.nsIProcess);
process.init(file);
process.run(false, args, args.length);
} else custombuttons. alertBox ("Файл не найден", path);
};
Отсутствует
Anton
Спасибо, кнопка с папками работает. Теперь бы ещё чтобы кнопка с дополнениями могла работать, как было задумано… надежда есть?
Chis, vv07
Вот здесь ещё есть кнопка для проверки обновлений (и здесь такая же кнопка для Thunderbird), но не факт, что она будет работать в Firefox 4.
Добавлено 01-04-2011 16:45:16
Inko7
А если попробовать заменить строчку
startProcess("%APPDATA%\\Mozilla\\Firefox\\Profiles\\Inko7.default\\bb-drop-in.cmd",[""]);
на
startProcess("C:\\WINDOWS\\system32\\cmd.exe",["%APPDATA%\\Mozilla\\Firefox\\Profiles\\Inko7.default\\bb-drop-in.cmd"]);
?
Отсутствует
Никак не могу заставить ее запускать cmd (или bat) файл расположенный в папке пользовательского профиля FF.
initWithPath не производит подстановку переменных среды (в данном случае %APPDATA%).
fix:
var env = Cc ["@mozilla.org/process/environment;1"]. getService (Ci. nsIEnvironment); startProcess(env. get ("APPDATA") + "\\Mozilla\\Fir…
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Если не сложно, исправьте, пожалуйста, кнопку Add-on's (Firefox) отсюда — не работает правая кнопка мыши.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует