turbot вообще-то я не использовал кнопку сustom buttons не юзаю категорически. у меня по дефолту этот баг. посему прошу помочь в разрешении
Отредактировано maxim puiu (31-03-2015 18:26:13)
turbot
Отредактировано maxim puiu (31-03-2015 19:46:09)
https://bugzilla.mozilla.org/
Беглым поиском не нашел ничего похожего, дерзайте.
Добавлено 31-03-2015 20:05:28
Вру, вот.Хотят решить баг радикально: не запускать, после рестарта, в полном экране.
А, не, не дочитал до конца: предлагают с задержкой переходить в полный экран, после запуска. И я о том же.
Отредактировано turbot (31-03-2015 20:29:00)
Отсутствует
Стилями - никак. А кнопкой - даже не представляю как.
Да и "на текущей" - это где? А если у вас сотня вкладок была открыта? И одну, где-нибудь в конце прокрутки, закрепили, то что, после закрытия остальных она будет висеть где-то за пределами видимости? По-моему - глупо.
Отсутствует
turbot
У меня несколько сайтов, из которых постоянно открываю новые вкладки, а потом жестами смахиваю просмотренное и возвращаюсь на исходные позиции, а чтобы случайно не закрыть ''источники''(должны быть постоянно на виду), я на них наложил защиту TMP, так вот хотелось бы отключить дополнение и тупо прикреплять вкладки в текущих позициях.
Нужно задействовать команду вроде pin.tab.in.current.position !important
Может в about:config написать?
Отсутствует
routir
pin.tab.in.current.position !important
Это невозможно сделать стилями, в принципе. CSS - это не язык программирования. Хоть сотню импортантов напишите.
С помощью custom buttons, вероятно, можно. Но я даже представить не могу - как. Пишите в соответствующую тему, может кто и снизойдет, хоть задача, явно, и нетривиальная.
Отсутствует
Dumby
Ещё один баг отловился. Если воспользоваться поиском в закладках, то снова появляются вот эти временные закладки при добавление через звёздочку. Ну и естественно очередная просьба, если можно подправить.
Отсутствует
добавлятьвкладкам атрибут inbookmarks ? Я тут попробовал
скрытый текстВыделить кодКод:
({ style: ` @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); .tabbrowser-tab[inbookmarks] .tab-text.tab-label { background-color: pink !important; } `.trim(), addProcessingInstruction: function(add) { if (add) { this.pi = document.createProcessingInstruction("xml-stylesheet", `type="text/css" href="data:text/css,${encodeURIComponent(this.style)}"` ); document.insertBefore(this.pi, document.firstChild); } else this.pi.remove(); }, init: function() { this.addProcessingInstruction(true); this.setAttributeForAllTabs(true); gBrowser.addTabsProgressListener(this); PlacesUtils.addLazyBookmarkObserver(this); addDestructor(this.destroy, this); }, destroy: function() { this.addProcessingInstruction(false); this.setAttributeForAllTabs(false); gBrowser.removeTabsProgressListener(this); PlacesUtils.removeLazyBookmarkObserver(this); }, isBookmarked: uri => Boolean(PlacesUtils.getBookmarksForURI(uri).length), onItemAdded: function(id, parent, ind, type, uri) this.onItem(type, uri), onItemRemoved: function(id, parent, ind, type, uri) this.onItem(type, uri), onItemChanged: function(id, property, isAnno, value, lm, type) property == "uri" && this.onItem(type), onItem: function(type, uri) { type == Ci.nsINavBookmarksService.TYPE_BOOKMARK && this.setAttributeForAllTabs(true, uri); }, onLocationChange: function(browser, wp, req, uri) { var tab = gBrowser.getTabForBrowser(browser); this.setAttributeForTab(tab, this.isBookmarked(uri)); }, setAttributeForAllTabs: function(set, uri) { for(var tab of gBrowser.tabs) { var curr = tab.linkedBrowser.currentURI; if (uri && !uri.equals(curr)) continue; var state = set && this.isBookmarked(curr); this.setAttributeForTab(tab, state); } }, setAttributeForTab: function(tab, set) { set ? tab.setAttribute("inbookmarks", true) : tab.removeAttribute("inbookmarks"); } }).init();
Хороший замысел, но у меня не работает. При добавлении любой страницы в закладки (независимо есть эта страница в закладках или нет) цвет фона закладки изменяется .
Отредактировано lokiju (08-04-2015 22:14:03)
Отсутствует
Если воспользоваться поиском в закладках, то снова появляются вот эти временные закладки при добавление через звёздочку. Ну и естественно очередная просьба, если можно подправить.
Да, есть такое. Вот так, вроде, получше.
(() => { function clean(view) { view._rows.some((candidate, ind) => { for(var node = candidate; node != view._rootNode; node = node.parent) { if (node.parent == view._rootNode && ( node.itemId == PlacesUIUtils.leftPaneQueries.BookmarksMenu || node.itemId == PlacesUIUtils.leftPaneQueries.UnfiledBookmarks )) { var parent = candidate.parent; try {view.nodeRemoved(parent, candidate, ind);} catch(ex) { view._rows.splice(ind, 1, parent); view.nodeRemoved(parent.parent, parent, ind); } clean(view); return true; } } }); } function change(view) { var nodeInserted = view.nodeInserted; view.nodeInserted = function PTV_nodeInserted(aParentNode, aNode, aNewIndex) { PTV_nodeInserted.nodeInserted.apply(this, arguments); PTV_nodeInserted.clean(this); } view.nodeInserted.nodeInserted = nodeInserted; view.nodeInserted.clean = clean; } function pageshow(e) { if (e.target.location.href != "chrome://browser/content/bookmarks/bookmarksPanel.xul") return; var tree = e.target.getElementById("bookmarks-view"); change(tree.view); clean(tree.view); var getter = tree.__lookupGetter__("view"); var setter = tree.__lookupSetter__("view"); Object.defineProperty(tree, "view", { enumerable: true, configurable: true, get: function() getter.call(this), set(val) { setter.call(this, val); if (val) {change(val); clean(val);} } }); } pageshow({target: SidebarUI.browser.contentDocument}); addEventListener("pageshow", pageshow, false, SidebarUI.browser); })();
При добавлении любой страницы в закладки (независимо есть эта страница в закладках или нет) цвет фона закладки изменяется .
Несколько раз перечитал, но понять не смог.
Задумано так: если текущая страница вкладки есть в закладках,
то вкладка должна иметь атрибут «inbookmarks». И наоборот.
На форуме
Вот так, вроде, получше.
Да так уже вроде ничего больше не возникает, тьфу три раза. Спасибо большое.
И пользуясь случаем, есть просьба, если я с ними тебе не шибко ещё надоел.
После полумесячного использования вот этой замечательной кнопочки, понял что ещё не хватает информации о количестве одинаковых закладок.
Можно эту цифру вывести на вкладку, когда есть одинаковые закладки, ну т.е. чтобы отображение шло если есть две и более одинаковых закладок?
Отредактировано voqabuhe (15-04-2015 21:29:45)
Отсутствует
Можно эту цифру вывести на вкладку, когда есть одинаковые закладки, ну т.е. чтобы отображение шло если есть две и более одинаковых закладок?
Попробовать, конечно, могу, но ...
setTimeout(obj => obj.init(), 1000, { style: ` @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); tab.tabbrowser-tab[inbookmarks] .tab-text.tab-label { background-color: pink; } tab.tabbrowser-tab[inbookmarks] label.inbookmarks-counter { padding: 0 2px; margin: 0 2px 0 -4px; color: white; font-weight: bold; border: 1px solid white; background-color: blue; } `.trim().replace(/;/g, " !important;"), addProcessingInstruction: function(add) { if (add) { this.pi = document.createProcessingInstruction("xml-stylesheet", `type="text/css" href="data:text/css,${encodeURIComponent(this.style)}"` ); document.insertBefore(this.pi, document.firstChild); } else this.pi.remove(); }, init: function() { this.addProcessingInstruction(true); this.setAttributeForAllTabs(true); gBrowser.addTabsProgressListener(this); PlacesUtils.addLazyBookmarkObserver(this); addEventListener("TabMove", this, false, gBrowser.tabContainer); addDestructor(this.destroy, this); }, destroy: function() { this.addProcessingInstruction(false); this.setAttributeForAllTabs(false); gBrowser.removeTabsProgressListener(this); PlacesUtils.removeLazyBookmarkObserver(this); }, handleEvent: function(e) this.updateInbookmarksCounter(e.target), getBookmarksCount: uri => PlacesUtils.getBookmarksForURI(uri).length, onItemAdded: function(id, parent, ind, type, uri) this.onItem(type, uri), onItemRemoved: function(id, parent, ind, type, uri) this.onItem(type, uri), onItemChanged: function(id, property, isAnno, value, lm, type) property == "uri" && this.onItem(type), onItem: function(type, uri) { type == Ci.nsINavBookmarksService.TYPE_BOOKMARK && this.setAttributeForAllTabs(true, uri); }, onLocationChange: function(browser, wp, req, uri) { var tab = gBrowser.getTabForBrowser(browser); this.setInbookmarksCounter(tab, 0); this.setAttributeForTab(tab, this.getBookmarksCount(uri)); }, setAttributeForAllTabs: function(set, uri) { for(var tab of gBrowser.tabs) { var curr = tab.linkedBrowser.currentURI; if (uri && !uri.equals(curr)) continue; var state = set && this.getBookmarksCount(curr); this.setAttributeForTab(tab, state); } }, setAttributeForTab: function(tab, set) { set ? tab.setAttribute("inbookmarks", set) : tab.removeAttribute("inbookmarks"); this.updateInbookmarksCounter(tab, set); }, updateInbookmarksCounter: function(tab, count) setTimeout((tab, count, obj) => obj.setInbookmarksCounter(tab, count), 50, tab, count, this), setInbookmarksCounter: function(tab, count = this.getBookmarksCount(tab.linkedBrowser.currentURI)) { var lab = document.getAnonymousElementByAttribute(tab, "class", "inbookmarks-counter"); if (count < 2) lab && lab.remove(); else { if (!lab) { var lab = document.createElement("label"); lab.className = "inbookmarks-counter"; var before = document.getAnonymousElementByAttribute(tab, "class", "tab-throbber"); before.parentNode.insertBefore(lab, before); } lab.value = count; } } });
На форуме
Dumby
Спасибо!!! Всё как и хотел, но есть небольшой баг. Если есть одинаковые закладки, то при их открытие не появляется название вкладки, а остаётся надпись Соединение....
И ещё вопрос. В предыдущей версии кнопки менял background-color: pink; на font-style: italic;
font-weight: bold !important;
Там это работало, а в этой версии срабатывает только italic. Как теперь выделить жирным?
Отсутствует
И ещё вопрос. В предыдущей версии кнопки менял background-color: pink; на font-style: italic;
font-weight: bold !important;
Там это работало, а в этой версии срабатывает только italic. Как теперь выделить жирным?
В этой версии !important не требуется,
!important добавляется автоматически.
Если есть одинаковые закладки, то при их открытие не появляется название вкладки, а остаётся надпись Соединение....
Так и знал, что не получится. Теперь наугад.
setTimeout(obj => obj.init(), 1000, { style: ` @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); tab.tabbrowser-tab[inbookmarks] .tab-text.tab-label { font-style: italic; font-weight: bold; } tab.tabbrowser-tab[inbookmarks] label.inbookmarks-counter { padding: 0 2px; margin: 0 2px 0 -4px; color: white; font-weight: bold; border: 1px solid white; background-color: blue; } `.trim().replace(/;/g, " !important;").replace(/(@namespace[^;]+) !important;/, "$1;"), addProcessingInstruction: function(add) { if (add) { this.pi = document.createProcessingInstruction("xml-stylesheet", `type="text/css" href="data:text/css,${encodeURIComponent(this.style)}"` ); document.insertBefore(this.pi, document.firstChild); } else this.pi.remove(); }, init: function() { this.addProcessingInstruction(true); this.setAttributeForAllTabs(true); gBrowser.addTabsProgressListener(this); PlacesUtils.addLazyBookmarkObserver(this); addEventListener("TabMove", this, false, gBrowser.tabContainer); addDestructor(this.destroy, this); }, destroy: function() { this.addProcessingInstruction(false); this.setAttributeForAllTabs(false); gBrowser.removeTabsProgressListener(this); PlacesUtils.removeLazyBookmarkObserver(this); }, handleEvent: function(e) this.updateInbookmarksCounter(e.target), getBookmarksCount: uri => PlacesUtils.getBookmarksForURI(uri).length, onItemAdded: function(id, parent, ind, type, uri) this.onItem(type, uri), onItemRemoved: function(id, parent, ind, type, uri) this.onItem(type, uri), onItemChanged: function(id, property, isAnno, value, lm, type) property == "uri" && this.onItem(type), onItem: function(type, uri) { type == Ci.nsINavBookmarksService.TYPE_BOOKMARK && this.setAttributeForAllTabs(true, uri); }, onLocationChange: function(browser, wp, req, uri) { var tab = gBrowser.getTabForBrowser(browser); this.setInbookmarksCounter(tab, 0); this.setAttributeForTab(tab, this.getBookmarksCount(uri)); }, setAttributeForAllTabs: function(set, uri) { for(var tab of gBrowser.tabs) { var curr = tab.linkedBrowser.currentURI; if (uri && !uri.equals(curr)) continue; var state = set && this.getBookmarksCount(curr); this.setAttributeForTab(tab, state); } }, setAttributeForTab: function(tab, set) { set ? tab.setAttribute("inbookmarks", set) : tab.removeAttribute("inbookmarks"); this.updateInbookmarksCounter(tab, set); }, updateInbookmarksCounter: function(tab, count) { var win = tab.linkedBrowser.contentWindow; if (win.document.readyState == "loading") { var obj = this; win.addEventListener("load", function load(e) { win.removeEventListener(e.type, load, false); obj.setInbookmarksCounter(tab); }, false); } else { count = count === false ? 0 : undefined; setTimeout((tab, obj) => obj.setInbookmarksCounter(tab, count), 50, tab, this); } }, setInbookmarksCounter: function(tab, count = this.getBookmarksCount(tab.linkedBrowser.currentURI)) { var lab = document.getAnonymousElementByAttribute(tab, "class", "inbookmarks-counter"); if (count < 2) lab && lab.remove(); else { if (!lab) { var lab = document.createElement("label"); lab.className = "inbookmarks-counter"; var before = document.getAnonymousElementByAttribute(tab, "class", "tab-throbber"); before.parentNode.insertBefore(lab, before); } lab.setAttribute("value", count); } } });
Отредактировано Dumby (17-04-2015 23:56:25)
На форуме
Прошу прощения, вернулся с новой к старой версии.
Подскажите, как в stylish изменить высоту панели закладок.
Отредактировано LittleMontana (25-04-2015 22:32:40)
Отсутствует
LittleMontana
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
LittleMontana
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); #personal-bookmarks, #PersonalToolbar { min-height: unset!important; height: auto!important; /*высота панели закладок будет зависеть от размера шрифта и иконок*/ } #PersonalToolbar .bookmark-item { -moz-appearance: none !important; padding: 0 1px!important; /*отступы у закладок*/ } #PersonalToolbar .bookmark-item > .toolbarbutton-icon { width: auto!important; height: 12px!important;/*размер иконок*/ margin: 0 1px 0 0!important; /*отступы у иконок*/ } #PersonalToolbar .bookmark-item > .toolbarbutton-text{ font-size: 10px!important; /*размер шрифта*/ margin: 0!important; }
Отсутствует