drage2 пишет:
Странно, не замечал ....Скрина нема?
На более старых версиях , при загрузке страницы, на вкладке отображалось слово "Соединение…":
Начиная с пятьдесят каких-то версий , при загрузке страницы, на вкладке стал отображаться 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)
Отсутствует
unter_officer
unter_officer пишет:
Это выглядит особенно убого, если в URL присутствует кириллица.
А, где сайт с кириллицей, смотреть на надпись "соединение", тоже большого энтузиазма не вызывает....Так хоть видно что загружается.
Отсутствует
drage2 пишет:
смотреть на надпись "соединение", тоже большого энтузиазма не вызывает...
Каждый вправе выбирать...
Вам не нравится смотреть на слово "Соединение…", мне не нравится смотреть на URL.
И если кто-то мне подскажет решение, как с помощью СВ вернуть старое состояние, что бы при загрузке страницы на вкладке снова отображалось слово "Соединение…", Вы вправе этим решением не пользоваться.
Отсутствует
Подскажите, как сохранить все изображения со страницы в папку загрузки? Есть готовые кнопки или код?
Желательно сохранять не все картинки, а например, размером более 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)
Отсутствует
Dobrov пишет:
Посоветуйте, как на кнопке-меню открыть .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)
Отсутствует
Garalf пишет:
Подскажите, а на 63 релизе CB работает?
У меня работает.
И на релизе 63.0, и на бете 64.0b3
Подведу для себя черту:
custom_buttons-0.0.5.9.0.4-fx.xpi
Конфигурация, надеюсь, всё ещё эта.
Разумный диапазон: Firefox 61 - Firefox 64
На Firefox 65 всё будет немного иначе.
Если вообще будет, конечно.
Отсутствует
Dumby пишет:
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)
Отсутствует
Yeesha пишет:
Browser.AddWebTab() должно работать.
Не-а.
Dumby пишет:
Можно попробовать сделать как здесь,
И «Обратно совместимое», и «Обратно несовместимое» — работают.
Ох, но кнопок где это встречается много...
Буду потихоньку переделывать.
Спасибо
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");
Вышел Firefox 63.0
Если они там с панелью колдуют, то могли и отломать.
Отредактировано 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); })();
Отсутствует
xrun1 пишет:
Как я понимаю, выпилили модификаторы поиска для адресной строки и кнопка теперь не работает.
Кнопка не работает из-за этого.
Может так попробуй
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);
Отсутствует