Странно, не замечал ....Скрина нема?
На более старых версиях , при загрузке страницы, на вкладке отображалось слово "Соединение…":
Начиная с пятьдесят каких-то версий , при загрузке страницы, на вкладке стал отображаться URL загружаемой страницы:
Это выглядит особенно убого, если в URL присутствует кириллица.
ADD:
В версиях 60+ это можно решить стилем:
/* Код Vitaliy V. */ #TabsToolbar .tabbrowser-tab .tab-content .tab-label-container::before { content: "Соединение…" !important; display: -moz-box !important; visibility: collapse !important; font-size: inherit !important; font-weight: inherit !important; white-space: nowrap !important; line-height: 1.7em !important; overflow: hidden !important; text-overflow: ellipsis !important; pointer-events: none !important; color: inherit !important; text-shadow: inherit !important; } #TabsToolbar .tabbrowser-tab[busy="true"]:not([progress="true"]) .tab-content .tab-label-container::before { visibility: visible !important; } #TabsToolbar .tabbrowser-tab[busy="true"]:not([progress="true"]) .tab-content .tab-text.tab-label { visibility: collapse !important; }
/* Код Vitaliy V. */ #TabsToolbar .tabbrowser-tab .tab-content .tab-label-container::before { content: "" !important; display: -moz-box !important; visibility: collapse !important; font-size: inherit !important; font-weight: inherit !important; white-space: nowrap !important; line-height: 1.7em !important; overflow: hidden !important; text-overflow: ellipsis !important; pointer-events: none !important; color: inherit !important; text-shadow: inherit !important; } #TabsToolbar .tabbrowser-tab[busy="true"]:not([progress="true"]) .tab-content .tab-label-container::before { content: "Соединение…" !important; visibility: visible !important; } #TabsToolbar .tabbrowser-tab[progress="true"] .tab-content .tab-label-container::before { content: "Соединение…" !important; visibility: visible !important; } #TabsToolbar .tabbrowser-tab:-moz-any([busy="true"],[progress="true"]) .tab-content .tab-text.tab-label { visibility: collapse !important; }
Отредактировано unter_officer (08-10-2018 21:50:00)
«The Truth Is Out There»
Отсутствует
unter_officer
Это выглядит особенно убого, если в URL присутствует кириллица.
А, где сайт с кириллицей, смотреть на надпись "соединение", тоже большого энтузиазма не вызывает....Так хоть видно что загружается.
Отсутствует
смотреть на надпись "соединение", тоже большого энтузиазма не вызывает...
Каждый вправе выбирать...
Вам не нравится смотреть на слово "Соединение…", мне не нравится смотреть на URL.
И если кто-то мне подскажет решение, как с помощью СВ вернуть старое состояние, что бы при загрузке страницы на вкладке снова отображалось слово "Соединение…", Вы вправе этим решением не пользоваться.
«The Truth Is Out There»
Отсутствует
Подскажите, как сохранить все изображения со страницы в папку загрузки? Есть готовые кнопки или код?
Желательно сохранять не все картинки, а например, размером более 200 пикселей, как это делает расширение Pick Images.
window.SavePic = function( image ) { try { var Upload = Services.downloads.userDownloadsDirectory.path } // каталог загрузок catch(e) { var Upload = Services.downloads.defaultDownloadsDirectory.path }; // ограничить длину имени var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).replace(/[:\\\/<>?*|"]+/g,' ').replace(/\s+/g,' ').replace(/ /g,' ').slice(0,88); var path = Upload + '/_Images/' + docTitle; // новый путь записи var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(path); if ( !file.exists() || !file.isDirectory() ) file.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // если нет папки cbu.setPrefs("browser.download.dir", window.convertFromUnicode("UTF-8", path)); saveImageURL(image, 0, 0, 0, 1, null, content.document); cbu.setPrefs("browser.download.dir", window.convertFromUnicode("UTF-8", Upload)); // вернуть старый путь XULBrowserWindow.statusTextField.label = '… '+ docTitle; setTimeout(()=> XULBrowserWindow.statusTextField.label = '', 3000); return path; // путь записи }; window.convertFromUnicode = function (charset, str) { // Конвертировать текст в юникод var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); };
Отредактировано Dobrov (12-10-2018 08:56:04)
Отсутствует
toxa
window.statusTextField = function (text, time) { // Показ сообщения в строке статуса XULBrowserWindow.statusTextField.label = text; time = time || 3000; // аргумент функции не указан setTimeout(()=> XULBrowserWindow.statusTextField.label = "", time); }; window.statusTextField("Сообщение в строке статуса");
Отсутствует
Посоветуйте, как на кнопке-меню открыть .appendChild меню правым кликом мыши, а не левым? (на него нужно более часто используемое действие)
если убрать: setAttribute('onclick', 'getDocEncoding();'), всё равно меню открывается, а это нужно только по правой кнопке.
var ddMenu = '<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\ oncommand="this.parentNode.setDocEncoding(event)">\n\ <menuitem type="radio" charset="KOI8-R" label="Кириллица (KOI8-R)"/>\n\ <menuitem type="radio" charset="windows-1251" label="Кириллица (Windows-1251)"/>\n\ <menuitem type="radio" charset="UTF-8" label="Unicode (UTF-8)"/>\n\ </menupopup>'; ddMenu = new DOMParser().parseFromString(ddMenu,"application/xml").documentElement; this.type = "menu"; this.orient = "horizontal"; document.getAnonymousElementByAttribute(this, "class", "toolbarbutton-menu-dropmarker").hidden = true; this.appendChild(ddMenu); this.setDocEncoding = function(evt) { var _charset = evt.target.getAttribute("charset"); try { SetForcedCharset(_charset); } catch(e) { BrowserSetForcedCharacterSet(_charset); } } getDocEncoding = function() { var docCharset = getBrowser().docShell.QueryInterface(Components.interfaces.nsIDocCharset); var curChar = docCharset.charset; switch (curChar) { case "KOI8-R": ddMenu.childNodes[1].setAttribute("checked", "true"); break; case "windows-1251": ddMenu.childNodes[3].setAttribute("checked", "true"); break; case "IBM866": ddMenu.childNodes[5].setAttribute("checked", "true"); break; case "UTF-8": ddMenu.childNodes[7].setAttribute("checked", "true"); break; default: ddMenu.childNodes[1].removeAttribute("checked"); ddMenu.childNodes[3].removeAttribute("checked"); ddMenu.childNodes[5].removeAttribute("checked"); ddMenu.childNodes[7].removeAttribute("checked"); } } this.setAttribute('onclick', "getDocEncoding();");
Отредактировано Dobrov (15-10-2018 09:44:30)
Отсутствует
Посоветуйте, как на кнопке-меню открыть .appendChild меню правым кликом мыши, а не левым? (на него нужно более часто используемое действие)
this.onclick =e=> { if ( e.button == 0 ) alert(e.button); if ( e.button == 1 ) alert(e.button); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); }; }; this.oncontextmenu =e=> e.detail == 2 && !menuPopup.hidePopup() || e.ctrlKey || !!menuPopup.openPopup(this, "after_start"); var array = [ "Кириллица (KOI8-R),KOI8-R", "Unicode (UTF-8),UTF-8", "Кириллица (Windows-1251),windows-1251", ]; var menuPopup = self.appendChild(document.createElement("menupopup")); array.forEach(str=> { var menuItem = menuPopup.appendChild(document.createElement("menuitem")); var label = str.split(",")[0], charset = str.split(",")[1]; menuItem.setAttribute("label", label); menuItem.setAttribute("type", "radio"); menuItem.setAttribute('checked', charset == gBrowser.docShell.charset); menuItem.onclick =()=> { try { SetForcedCharset(charset) } catch(e) { BrowserSetForcedCharacterSet(charset) } }; }); menuPopup.setAttribute("onclick", "event.stopPropagation()");
Отсутствует
Подскажите, есть такой код, позволяющий открывать предыдущую вкладку, после закрытия текущей https://forum.mozilla-russia.org/viewtopic.php?pid=759770#p759770
и здесь https://forum.mozilla-russia.org/viewtopic.php?pid=761644#p761644
А можно ли как-то переделать код, что бы открывалась вкладка слева от закрытой?
Отсутствует
Smitis
Упс, там closing должно быть вместо closed
А переделать, ну можно попробовать.
(blurTab => { var find = (t, key = "previousSibling") => { while((t = t[key])) if (!t.hidden && !t.closing) return t; } gBrowser._blurTab = tab => { if (!tab.selected) return; var tabToSelect = find(tab) || find(tab, "nextSibling"); if (tabToSelect) gBrowser.selectedTab = tabToSelect; else blurTab.call(gBrowser, tab); } addDestructor(() => gBrowser._blurTab = blurTab); })(gBrowser._blurTab);
Отсутствует
Dumby
Вы просто шаман, спасибо!
А ещё такой вопрос, можно ли подобным образом сделать так, что бы ссылки при клике на странице открывались сразу справа от вкладки, а не где-то в конце непонятного списка? Настройки типа insertAfterCurrent помогают, как я понял, при открытии только новых страниц, например, через CtrlT и т.п.
Отсутствует
Подскажите, а на 63 релизе CB работает?
--------------------------------------------
Сам спросил - сам ответил:
CB работает с последними костылями.
Отредактировано Garalf (22-10-2018 23:59:34)
Отсутствует
Подскажите, а на 63 релизе CB работает?
У меня работает.
И на релизе 63.0, и на бете 64.0b3
Подведу для себя черту:
custom_buttons-0.0.5.9.0.4-fx.xpi
Конфигурация, надеюсь, всё ещё эта.
Разумный диапазон: Firefox 61 - Firefox 64
На Firefox 65 всё будет немного иначе.
Если вообще будет, конечно.
Отсутствует
custom_buttons-0.0.5.9.0.4-fx.xpi
Конфигурация, надеюсь, всё ещё эта.
Часть кнопок не работает. Например
У меня косяк или всё-таки они не работает?
Отсутствует
Coroner
Они изгадили gBrowser.addTab и не только его.
Можно попробовать сделать как здесь, при этом заменив
в «Обратно совместимом» getSystemPrincipal() на createNullPrincipal({})
в «Обратно несовместимом» addTrustedTab на addWebTab
Сразу скажу — я не знаю что может плохого произойти,
если для вэб-страницы использовать системный triggeringPrincipal
Не знаю в прямом смысле слова, типа без понятия.
Отредактировано Dumby (23-10-2018 18:00:38)
Отсутствует
Browser.AddWebTab() должно работать.
Не-а.
Можно попробовать сделать как здесь,
И «Обратно совместимое», и «Обратно несовместимое» — работают.
Ох, но кнопок где это встречается много...
Буду потихоньку переделывать.
Спасибо
P.S. Ещё не работает «рестарт». Мне он не нужен, просто проверял что работает, а что нет.
Видимо и правда изгадили всё подряд.
Отсутствует
есть кнопка Quick toggle for about:config, там в отдельном подменю открываются только пункты типа "radio", и сделано это как-то неправильно…
Вопрос: как сгруппировать строки меню в отдельное подменю, где будут настройки одной категории, т.е. подменю для прокси, media…
например, по тэгу SUBMENU должно создаваться подменю, но сейчас в коде этого нет…
{nodeName:"menu", name:"Куки", = обычный пункт основного меню…
…
{nodeName:"SUBMENU", name:"PROXY"…
ПЕРЕКЛЮЧАТЕЛИ
{nodeName:"menu", name:"Прокси сервис" …………… "0,,,отключен,,,0|||2,,,Автонастройка,,,2|||5,,,Системный,,,5"},
ПЕРЕКЛЮЧАТЕЛИ
{nodeName:"menu", name:"URL автонастройки", pref:"network.proxy.autoconfig_url", refresh:"", userChoice:"file:///etc/proxy.pac", strValues:"………
ЧЕКБОКС
{nodeName:"menuitem", name:"режим 'Без прокси' при выходе", pref:"CB.Proxy.reset", userChoice:"false"},
{nodeName:"CLOSE-SUBMENU"……
…
продолжается основное меню
Отредактировано Dobrov (24-10-2018 06:03:36)
Отсутствует
В 63-й версии не открывается в боковой панели. Что здесь сломалось?
var bar = document.getElementById("sidebar-box"); setToolbarVisibility(bar, bar.collapsed); openWebPanel("Декодер", "http://www.artlebedev.ru/tools/decoder/");
Отсутствует
xrun1, может сломалось не в кнопке, а в браузере?
Удалена функция открытия отдельных закладок в боковой панели ("Open in Sidebar" в "Library");
Если они там с панелью колдуют, то могли и отломать.
Отредактировано Coroner (25-10-2018 13:57:37)
Отсутствует
Coroner
Да уж...
Как я понимаю, выпилили модификаторы поиска для адресной строки и кнопка теперь не работает.
// Пункт для контекстного меню адресной строки, подставляющий модификаторы поиска // Исходный вариант здесь https://forum.mozilla-russia.org/viewtopic.php?pid=714095#p714095 (()=> { if ( document.getElementById("lbc") ) return; var urlbar = window.document.getElementById("urlbar"), textBox = window.document.getAnonymousElementByAttribute(urlbar, "anonid", "textbox-input-box"), cxmenu = window.document.getAnonymousElementByAttribute(textBox, "anonid", "input-box-contextmenu"), separator = document.createElement("menuseparator"), menu = document.createElement("menu"), popup = document.createElement("menupopup"), i, labelArray = [ "^ История", "* Закладки", "+ Страницы с метками", "% Текущие открытые вкладки", "~ Набранные", "# Названия", "@ Веб-адреса (URLs)" ], insertCharacters = function(sym) { var urlbar = window.document.getElementById("urlbar"), urlbarText = urlbar.value, pos, urlbarFocus = window.document.getElementById("Browser:OpenLocation"); urlbarFocus.doCommand(); if (urlbarText.length === 0) { urlbarText = sym + " "; } else if (urlbarText.slice(-1) === " ") { urlbarText = urlbarText + sym + " "; } else { urlbarText = urlbarText + " " + sym + " "; } urlbar.value = urlbarText; pos = urlbarText.length; urlbar.setSelectionRange(pos, pos); urlbar.editor.deleteSelection(0, 0); }, makeMenuItem = function(label) { var sym = label.slice(0, 1), node = document.createElement("menuitem"); node.setAttribute("label", label); node.addEventListener("command", function() { insertCharacters(sym); }, false); popup.appendChild(node); }; menu.setAttribute("label", "Вставить ^ * + % ~ # @" ); menu.id = "lbc"; menu.appendChild(popup); for (i = 0; i < labelArray.length; i += 1) { makeMenuItem(labelArray[i]); } cxmenu.appendChild(separator); cxmenu.appendChild(menu); })();
Отсутствует
Как я понимаю, выпилили модификаторы поиска для адресной строки и кнопка теперь не работает.
Кнопка не работает из-за этого.
Может так попробуй
addEventListener("popupshowing", { handleEvent(e) { if (e.originalTarget != this.popup) return; removeEventListener("popupshowing", this, false, gURLBar); var sep = this.append("menuseparator", this.popup); var menu = this.append("menu", this.popup, {label: "Вставить ^ * + % ~ # @"}); var popup = this.append("menupopup", menu, {oncommand: "insert(event);"}); addDestructor(() => sep.remove(menu.remove())); this.handleEvent = e => { removeEventListener("popupshowing", this, false, popup); var df = document.createDocumentFragment(); for(var label of [ "^ История", "* Закладки", "+ Страницы с метками", "% Текущие открытые вкладки", "~ Набранные", "# Названия", "@ Веб-адреса (URLs)" ]) this.append("menuitem", df, {label}); popup.append(df); popup.insert = e => { var str = e.target.label[0] + " "; var val = gURLBar.value; if (val && !val.endsWith(" ")) str = " " + str; gURLBar.editor.endOfDocument(); gURLBar.editor.insertText(str); } } addEventListener("popupshowing", this, false, popup); }, get popup() { delete this.popup; return this.popup = gURLBar.inputField.parentNode.menupopup; }, append(name, parent, attrs) { var elm = document.createElement(name); if (attrs) for(var a in attrs) elm.setAttribute(a, attrs[a]); return parent.appendChild(elm); } }, false, gURLBar);
Отсутствует