Долго не мог понять почему лиса восстанавливая вкладки при запуске зеркалирует их, то есть разворачивает их задом на перёд. Оказалось виноват этот код:
Я проверил на FF33 и код вкладки при запуске не зеркалирует, может я что не понял или опять конфликт с расширениями.
Отсутствует
Блин!!!!!!!!!!! Ну сейчас попробую в виртуалке…
действительно в виртуалке этот код не зеркалирует вкладки. Я в отчаянии Практически все мои расширения далеки от вкладок. Вы не знаете как сохранить список расширений, чтобы я вылажил сюда, а вы смогли посмотреть опытным глазом? Но повторюсь, если вышеприведённый код убрать вкладки востанавливаются нормально.
Продолжаю копать. Установил в виртуалке все свои расширения. Глюка пока нет. Завтра постараюсь постепенно допилить лису в виртуалке (добавить остальные кнопки, настроить расширения), и если всё будет в порядке перенести профиль в хост. А старый похоже испорченный. У меня есть немного отключённых расширений возможно дело в них...
Отредактировано KOT040188 (23-10-2014 01:24:27)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
KOT040188
try { Cu.import("resource://custombuttons-modules/addons4.js", {}); } catch(ex) {} function gatherInfo(type) { var tmp = [], map = {}, sort = []; items.forEach(function(item) { if (item.type != type) return; var name = item.name ? item.name.toUpperCase() : "UNNAMED"; name += item.id tmp.push(name); map[name] = item; }); tmp.sort(); tmp.forEach(function(name) { sort.push(map[name]) }); var list = "", enabled = 0, disabled = 0; sort.forEach(function(item) { list += (item.name || "unnamed") + " " + (item.version || ""); if (item.type != "custombuttons" && (item.userDisabled || item.appDisabled)) { list += " [ выключен ]\n"; disabled++; return; } else if (item.type == "custombuttons") { var str = item.id; var id = str.substring(str.lastIndexOf("custombuttons-button"), str.length); var button = document.getElementById(id); if (!button) { list += " [ НЕ ВЫТАЩЕНА ]\n"; disabled++; return; } if (button.hasAttribute("initializeerror")) { list += " [ ОШИБКА ИНИЦИАЛИЗАЦИИ ]\n"; disabled++; return; } } enabled++; list += "\n"; }); return [enabled + disabled, enabled, disabled, list]; } var items = []; function extensionsCallback(extensions) { var list = ""; items = extensions; var info = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo); list += info.vendor + " " + info.name + " " + info.version + " (build " + info.appBuildID + ")\n"; list += "User Agent: " + navigator.userAgent + "\n\n"; for(var type in AddonManager.addonTypes) { var name; var addonType = AddonManager.addonTypes[type]; if (addonType.name) name = addonType.name; else if (addonType.id == "custombuttons") name = "Кнопки"; list += "*** " + name; var ext = gatherInfo(addonType.id); list += " ( Включено: " + ext[1] + ", Отключено: " + ext[2] + ", Всего: " + ext[0] + " )\n" + ext[3] + "\n"; } var dialog = '\ <?xml-stylesheet href="chrome://global/skin/"?>\n\ <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\ xmlns:html="http://www.w3.org/1999/xhtml"\n\ id="cbbExtensionsLister"\n\ persist="width height screenX screenY"\n\ title="Список расширений"\n\ width="640" height="480"\n\ buttons="accept,extra1"\n\ buttonlabelextra1="Копировать все…"\n\ onload="init()"\n\ ondialogextra1="copy()">\n\ <script type="application/x-javascript">\n\ <![CDATA[\n\ function init () {}\n\ function copy () {\n\ var tb = document.getElementById("addonslist");\n\ window.arguments[0].write((opener.navigator.platform.indexOf("Win") != -1) ? tb.value.replace(/\\n/g, "\\r\\n") : tb.value);\n\ tb.focus ();\n\ }\n\ ]]>\n\ </script>\n\ <textbox id="addonslist" flex="1" multiline="true" />\n\ </dialog>'; dialog = "data:application/vnd.mozilla.xul+xml," + encodeURIComponent(dialog); // var win = window.openDialog (dialog, "", "chrome,dependent,dialog=no,minimizable", custombuttonsUtils.gClipboard); var win = window.openDialog (dialog, "", "chrome,dependent,dialog=no", custombuttonsUtils.gClipboard); addEventListener("load", function() { var doc = win.document; var textbox = doc.querySelector("textbox"); textbox.value = list; textbox.inputField.selectionStart = textbox.inputField.selectionEnd = 0; }, true, win); } AddonManager.getAllAddons(extensionsCallback);
Отсутствует
Поздравьте меня, я выяснил в виртуалке с чем конфликтует вышепреведённый код. Оказалось он конфликтует с другим кодом в той же кнопке в которой лежит. Тоесть: вышеприедённый код без остальной кнопки не приводит к глюку, кнопка без кода тоже (об этом я уже писал). Вот она. А вместе - глюк. Прошу bunda1 снова откликнутся, проверить кнопку на глюк у себя, и поомочь исправить её. Заранее спасибо.
Отредактировано KOT040188 (23-10-2014 17:17:54)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
А нет там http://. Я просто не в курсе как выкладывать кнопки, положил как ссылку. Как выкладывать?
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u043E%u0438%u0441%u043A%20%u043D%u0430%20%u0441%u0430%u0439%u0442%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*%20---------------------------------------------------------------------------%0A%20%20%20%20%20%u0443%u0431%u0440%u0430%u0442%u044C%20%u0444%u043E%u043A%u0443%u0441%20%u0432%20%u043F%u0430%u043D%u0435%u043B%u0438%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%0A%20%20%20---------------------------------------------------------------------------%20*/%0Avar%20focusAndSelectUrlBar%20%3D%20window.focusAndSelectUrlBar%3B%0Awindow.focusAndSelectUrlBar%20%3D%20function%28%29%20%7B%0A%20%20%20%20new%20Error%28%29.stack.indexOf%28%22%5CnopenLinkIn@chrome%3A//browser/content/utilityOverlay.js%3A%22%29%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20return%20focusAndSelectUrlBar.apply%28this%2C%20arguments%29%3B%0A%7D%3B%0A/*%20---------------------------------------------------------------------------%0A%20%20%20%20%20%u041E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u043B%u044E%u0431%u0443%u044E%20%u043D%u043E%u0432%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0441%u043F%u0440%u0430%u0432%u0430%20%u043E%u0442%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%0A%20%20%20---------------------------------------------------------------------------%20*/%20%0AaddEventListener%28%22TabOpen%22%2C%20function%28e%29%20%7B%0A%20%20%20var%20newTab%20%3D%20e.target%3B%0A%20%20%20var%20lab%20%3D%20newTab.label%3B%20%0A%20%20%20var%20tabpos%20%3D%20gBrowser.selectedTab._tPos%3B%0A%20%20%20var%20newTabLab%20%3D%20gBrowser.mStringBundle.getString%28%22tabs.emptyTabTitle%22%29%3B%20%20%0A%0A%20%20%20if%20%28%20tabpos%20%3D%3D%200%20%26%26%20lab%20%3D%3D%20newTabLab%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%u0435%u0441%u043B%u0438%20%u0432%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u0435%20%u0441%u0435%u0441%u0441%u0438%u0438%0A%20%20%20if%20%28%20new%20Error%28%29.stack.indexOf%28%22openContainer%22%29%20%21%3D%3D%20-1%20%29%20return%3B%20%20%20//%20%u0435%u0441%u043B%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0451%20%u0432%u043E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%20%u0438%u0437%20%u043F%u0430%u043F%u043A%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%20%0A%20%20%20if%20%28%20/handleLinkClick/.test%28new%20Error%28%29.stack%29%20%29%20return%3B%20%20%20%20%20%20%20%20%20%20%20//%20%u0435%u0441%u043B%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u043F%u043E%20%u0421%u041A%u041C%20%0A%0A%20%20%20gBrowser.moveTabTo%28%20e.target%2C%20tabpos%20+%201%20%29%3B%0A%20%20%20%0A%20%20%20//%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u0437%u0430%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%22custombutton%22%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%0A%20%20%20if%20%28%20lab.startsWith%28%22custombutton%3A//%25%22%29%20%29%20setTimeout%28function%28%29%20gBrowser.removeTab%28%20newTab%20%29%2C%200%29%3B%0A%0A%7D%2C%20false%2C%20gBrowser.tabContainer%20%29%3B%0A/*%20---------------------------------------------------------------------------%0A%20%20%20%20%20%u0432%u043E%u0437%u0432%u0440%u0430%u0442%20%u043D%u0430%20%u043F%u0440%u0435%u0434%u044B%u0434%u0443%u0449%u0443%u044E%20%u0430%u043A%u0442%u0438%u0432%u043D%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%0A%20%20%20---------------------------------------------------------------------------%20*/%0Aconst%20tc%20%3D%20gBrowser.tabContainer%3B%0Alet%20tabs%20%3D%20%5B%5D%3B%0Afunction%20onTabSelect%28e%29%20%7B%0A%20%20%20%20for%20%28let%20i%20%3D%200%3B%20i%20%3C%20tabs.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.target.linkedPanel%20%21%3D%20tabs%5Bi%5D%29%0A%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20tabs.splice%28i%2C%201%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20tabs.push%28e.target.linkedPanel%29%3B%0A%7D%0Afunction%20onTabClose%28e%29%20%7B%0A%20%20%20%20let%20allTabs%20%3D%20Array.slice%28tc.childNodes%29%3B%0A%20%20%20%20let%20allTabsLP%20%3D%20allTabs.map%28function%28tab%29%20%7B%0A%20%20%20%20%20%20%20%20return%20tab.linkedPanel%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20if%20%28e.target%20%3D%3D%20gBrowser.selectedTab%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20tabs.length%20%3E%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20let%20tab%3B%0A%20%20%20%20%20%20%20%20let%20lp%20%3D%20tabs%5Btabs.length%20-%20%28tabs.length%20%3D%3D%201%20%3F%201%20%3A%202%29%5D%3B%0A%20%20%20%20%20%20%20%20for%20%28let%20i%20%3D%200%3B%20i%20%3C%20allTabsLP.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28lp%20%21%3D%20allTabsLP%5Bi%5D%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20tab%20%3D%20allTabs%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28tab%29%0A%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20tab%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28tabs.length%20%21%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20tabs%20%3D%20tabs.filter%28function%28tab%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20allTabsLP.indexOf%28tab%29%20%21%3D%20-1%20%3F%20true%20%3A%20false%3B%0A%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20tabs.splice%28tabs.length%20-%20%28tabs.length%20%3D%3D%201%20%3F%201%20%3A%202%29%2C%201%29%3B%0A%20%20%20%20%7D%0A%7D%0AaddEventListener%28%22TabSelect%22%2C%20onTabSelect%2C%20false%2C%20tc%29%3B%0AaddEventListener%28%22TabClose%22%2C%20onTabClose%2C%20false%2C%20tc%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BloadURI%28%22javascript%3Aopen%28%27http%3A//yandex.by/yandsearch%3Ftext%3Dsite%3A%27+location.host%29%28%29%3B%22%29%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
Отредактировано KOT040188 (23-10-2014 19:21:41)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
А нет там http://. Я просто не в курсе как выкладывать кнопки, положил как ссылку. Как выкладывать?
АУ!
Скорее всего Вы имеете в виду Search in Website+( Firefox )
Если у Вас стоит эта кнопка, Вы должны найти постинг, где эта кнопка описана и приводится её код.
Сделать это несложно: найдите в коде подходящее ключевое слово, например из кода кнопки (где-то в середине): 2CAAABAAEAFhYAAAEAIAAQCAAAFgAAACgAAAAWAAAALAAAAAEAIAAAAAAA6Ac
и сделайте поиск по этому "слову" в Custom Buttons (в верху каждой страницы есть кнопка "Поиск") и Вы быстро найдёте
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Я ж написал код кнопки!!!!!!!!!!!!!!!!!! bunda1 отзовитесь
Отредактировано KOT040188 (23-10-2014 23:47:18)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
Я ж написал код кнопки!!!!!!!!!!!!!!!!!! bunda1 отзовитесь
То, что Вы дали, мягко выражаясь, "несъедобно".
Вы что, хотите, чтобы разработчик, чтобы прочесть код, установил себе эту кнопку?
Или он должен сделать за Вас всю работу по поиску?
Отредактировано difabor (23-10-2014 23:54:37)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Я хотел чтобы кто-нибудь испробовал эту кнопку, дабы убедиться в том что глюк связан именно с ней.
Ладно, код:
loadURI("javascript:open('http://yandex.by/yandsearch?text=site:'+location.host)();")
Инициализация:
/* --------------------------------------------------------------------------- убрать фокус в панели адреса новой вкладки --------------------------------------------------------------------------- */ var focusAndSelectUrlBar = window.focusAndSelectUrlBar; window.focusAndSelectUrlBar = function() { new Error().stack.indexOf("\nopenLinkIn@chrome://browser/content/utilityOverlay.js:") return true; return focusAndSelectUrlBar.apply(this, arguments); }; /* --------------------------------------------------------------------------- Открывать любую новую вкладку справа от текущей --------------------------------------------------------------------------- */ addEventListener("TabOpen", function(e) { var newTab = e.target; var lab = newTab.label; var tabpos = gBrowser.selectedTab._tPos; var newTabLab = gBrowser.mStringBundle.getString("tabs.emptyTabTitle"); if ( tabpos == 0 && lab == newTabLab ) return; // если восстановление сессии if ( new Error().stack.indexOf("openContainer") !== -1 ) return; // если открыть всё во вкладках из папки закладок if ( /handleLinkClick/.test(new Error().stack) ) return; // если открыть ссылку по СКМ gBrowser.moveTabTo( e.target, tabpos + 1 ); // автоматически закрывать "custombutton" вкладку if ( lab.startsWith("custombutton://%") ) setTimeout(function() gBrowser.removeTab( newTab ), 0); }, false, gBrowser.tabContainer ); /* --------------------------------------------------------------------------- возврат на предыдущую активную вкладку --------------------------------------------------------------------------- */ const tc = gBrowser.tabContainer; let tabs = []; function onTabSelect(e) { for (let i = 0; i < tabs.length; i++) { if (e.target.linkedPanel != tabs[i]) continue; tabs.splice(i, 1); break; } tabs.push(e.target.linkedPanel); } function onTabClose(e) { let allTabs = Array.slice(tc.childNodes); let allTabsLP = allTabs.map(function(tab) { return tab.linkedPanel; }); if (e.target == gBrowser.selectedTab && tabs.length >= 1) { let tab; let lp = tabs[tabs.length - (tabs.length == 1 ? 1 : 2)]; for (let i = 0; i < allTabsLP.length; i++) { if (lp != allTabsLP[i]) continue; tab = allTabs[i]; break; } if (tab) gBrowser.selectedTab = tab; } if (tabs.length != 0) { tabs = tabs.filter(function(tab) { return allTabsLP.indexOf(tab) != -1 ? true : false; }); tabs.splice(tabs.length - (tabs.length == 1 ? 1 : 2), 1); } } addEventListener("TabSelect", onTabSelect, false, tc); addEventListener("TabClose", onTabClose, false, tc);
Отредактировано KOT040188 (24-10-2014 03:43:22)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
KOT040188
Я проверял твою кнопку на FF33 и восстановление сессии без проблем, даже на
Не знаю где проблема, коды из кнопки вроде не должны взаимодействовать.
Попробуй кнопку без:
/* --------------------------------------------------------------------------- убрать фокус в панели адреса новой вкладки --------------------------------------------------------------------------- */ var focusAndSelectUrlBar = window.focusAndSelectUrlBar; window.focusAndSelectUrlBar = function() { new Error().stack.indexOf("\nopenLinkIn@chrome://browser/content/utilityOverlay.js:") return true; return focusAndSelectUrlBar.apply(this, arguments); };
Отредактировано bunda1 (24-10-2014 14:08:03)
Отсутствует
bunda1, огромное вам спасибо за терпение. Вы были правы, в создании глюка участвуют также и расширение! Для стопроцентного воспроизведения глюка нужно это расширение и этот код:
// Открывать любую новую вкладку справа от текущей, от 27.09.2014. ................................ addEventListener("TabOpen", function(e) { var newTab = e.target; var lab = newTab.label; var tabpos = gBrowser.selectedTab._tPos; var newTabLab = gBrowser.mStringBundle.getString("tabs.emptyTabTitle"); if ( tabpos == 0 && lab == newTabLab ) return; // если восстановление сессии if ( new Error().stack.indexOf("openContainer") !== -1 ) return; // если открыть всё во вкладках из папки закладок if ( /handleLinkClick/.test(new Error().stack) ) return; // если открыть ссылку по СКМ gBrowser.moveTabTo( e.target, tabpos + 1 ); // автоматически закрывать "custombutton" вкладку if ( lab.startsWith("custombutton://%") ) setTimeout(function() gBrowser.removeTab( newTab ), 0); }, false, gBrowser.tabContainer );
Не знаю что за конфликт между ними но это приводит к разворачиванию вкладок при восстановление. Если у кого-нибудь будет желание проверьте у себя. bunda1, может что-нибудь посоветуете? Как быть? Расширение очень нужное… И код тоже…
Отредактировано KOT040188 (24-10-2014 15:39:09)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
может что-нибудь посоветуете? Как быть? Расширение очень нужное
Ну я у себя просто открываю закладки в вкладке с адресом chrome://browser/content/bookmarks/bookmarksPanel.xul.
Отсутствует
Ну я у себя просто открываю закладки в вкладке с адресом chrome://browser/content/bookmarks/bookmarksPanel.xul.
Я тоже иногда пользуюсь этим (в Bookmarks Tab не отображаются мобильные закладки), но: при перезагрузке лисы сбрасывается папка открытая в закладках, а у меня их много (и ззакладок и папок). Ещё расширение позволяет увеличить масштаб. Так что не вариант… Может можно как-то изменить код, чтобы не было конфликта? Может кто знает аналогичное расширение? Его автор похоже забросил, а у меня есть пару предложений по его изменению.
Отредактировано KOT040188 (24-10-2014 16:33:38)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
Я тоже иногда пользуюсь этим (в Bookmarks Tab не отображаются мобильные закладки), но: при перезагрузке лисы сбрасывается папка открытая в закладках
У меня при перезагрузке лисы не сбрасывается. Опять наверно какое расширение чудит. Я посмотрю в чем там проблема с Bookmarks Tab
Отредактировано bunda1 (24-10-2014 19:27:19)
Отсутствует
У меня при перезагрузке лисы не сбрасывается. Опять наверно какое расширение чудит
Я извиняюсь, имел в виду chrome://browser/content/places/places.xul (невнимательно прочитал ваше сообщение), он сбрасывает папку если перезагрузить страницу. А chrome://browser/content/bookmarks/bookmarksPanel.xul мне не удобен, ибо папок много и получается их постоянно надо будет сворачивать после разворачивания, чтобы не закопаться… А ещё в Bookmarks Tab можно назначить папку закладок которая будет открываться при создании новой вкладки…
Отредактировано KOT040188 (24-10-2014 19:50:38)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
Я извиняюсь, имел в виду chrome://browser/content/places/places.xul
Попробуй: Открывать библиотеку в вкладке и последнюю активную папку библиотеки и не будет папка сбрасываться.
А chrome://browser/content/bookmarks/bookmarksPanel.xul мне не удобен,
Ну вот ....
А ещё в Bookmarks Tab можно назначить папку закладок которая будет открываться при создании новой вкладки
В about:config > browser.newtab.url
Настраиваем страницу новой вкладки в Mozilla Firefox | КОМПЬЮТЕРНЫЕ ВЕСТИ
Отредактировано bunda1 (24-10-2014 20:52:13)
Отсутствует
Попробуй: Открывать библиотеку в вкладке и последнюю активную папку библиотеки и не будет папка сбрасываться
Спасибо, добавил для удобства, но Bookmarks Tab чуточку удобнее: при перезагрузках не сбрасывается папка, а в новой вкладке показывается заранее заданная папка закладок. Разница не большая, но она есть…
В about:config > browser.newtab.url
Про это я знаю, но не понял к чему это сейчас. Bookmarks Tab работает и без этой настройки.
Отредактировано KOT040188 (24-10-2014 21:00:05)
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Отсутствует
KOT040188
// Открывать любую новую вкладку справа от текущей, от 24.10.2014. ................................ addEventListener("TabOpen", function(e) { var newTab = e.target; var lab = newTab.label; var tabpos = gBrowser.selectedTab._tPos; var newTabLab = gBrowser.mStringBundle.getString("tabs.emptyTabTitle"); // если восстановление сессии if ( tabpos == 0 && (lab == newTabLab || lab == 'chrome://bookmarks/content/bookmarks.html') ) return; if ( new Error().stack.indexOf("openContainer") !== -1 ) return; // если открыть всё во вкладках из папки закладок if ( /handleLinkClick/.test(new Error().stack) ) return; // если открыть ссылку по СКМ gBrowser.moveTabTo( e.target, tabpos + 1 ); // автоматически закрывать "custombutton" вкладку if ( lab.startsWith("custombutton://%") ) setTimeout(function() gBrowser.removeTab( newTab ), 0); }, false, gBrowser.tabContainer );
Отсутствует
Неа, всё равно разворачивает!
// Открывать любую новую вкладку справа от текущей, от 24.10.2014. ................................ addEventListener("TabOpen", function(e) { var newTab = e.target; var lab = newTab.label; var tabpos = gBrowser.selectedTab._tPos; var newTabLab = gBrowser.mStringBundle.getString("tabs.emptyTabTitle"); if ( tabpos == 0 && lab == newTabLab ) return; // если восстановление сессии if ( tabpos == 0 && lab == '' ) return; // если восстановление сессии с Bookmarks Tab if ( new Error().stack.indexOf("openContainer") !== -1 ) return; // если открыть всё во вкладках из папки закладок if ( /handleLinkClick/.test(new Error().stack) ) return; // если открыть ссылку по СКМ gBrowser.moveTabTo( e.target, tabpos + 1 ); // автоматически закрывать "custombutton" вкладку if ( lab.startsWith("custombutton://%") ) setTimeout(function() gBrowser.removeTab( newTab ), 0); }, false, gBrowser.tabContainer );
Отсутствует