Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

Сustom Buttons » [CB]Context Search » Сегодня 04:55:37

Coroner
В данном случае так, наверно

скрытый текст

Выделить код

Код:

      /*
      contextMenu.hidePopup();
      var submission = e.target.engine.getSubmission(text, null);
      gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, background, false);
      */
      var {principal} = gContextMenu;
      contextMenu.hidePopup();
      var submission = e.target.engine.getSubmission(text, null);
      gBrowser.loadOneTab(submission.uri.spec, {
         postData: submission.postData,
         inBackground: background,
         triggeringPrincipal: principal
      });

Сustom Buttons » Custom Buttons » Вчера 17:38:16

Coroner
Они изгадили gBrowser.addTab и не только его.
Можно попробовать сделать как здесь, при этом заменив

в «Обратно совместимом»   getSystemPrincipal()   на   createNullPrincipal({})

в «Обратно несовместимом»   addTrustedTab   на   addWebTab

Сразу скажу — я не знаю что может плохого произойти,
если для вэб-страницы использовать системный triggeringPrincipal
Не знаю в прямом смысле слова, типа без понятия.

Сustom Buttons » Custom Buttons » Вчера 02:06:20

Garalf пишет:

Подскажите, а на 63 релизе CB работает?

У меня работает.
И на релизе 63.0, и на бете 64.0b3

Подведу для себя черту:

custom_buttons-0.0.5.9.0.4-fx.xpi
Конфигурация, надеюсь, всё ещё эта.

Разумный диапазон: Firefox 61 - Firefox 64
На Firefox 65 всё будет немного иначе.
Если вообще будет, конечно.

Сustom Buttons » Custom Buttons » 21-10-2018 19:17:11

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);

Сustom Buttons » Custom Buttons » 06-10-2018 19:49:02

Quartz1t
bunda1
func4ptch4
Yeesha
Ну, если не получается красиво и изысканно,
то почему бы не записать тупо и примитивно?

Выделить код

Код:

var file = Services.dirsvc.get("GreD", Ci.nsIFile).parent.parent;
["Lib", "PotPlayer", "PotPlayerMini.exe"].forEach(file.append);

alert(file.path);

Сustom Buttons » Custom Buttons » 10-09-2018 20:15:12

drage2
Что значит почему? Так сделано.
А почему у них так сделано, это ты у них спроси.

PlacesCommandHook.bookmarkPage пишет:

async bookmarkPage(aBrowser, aShowEditUI, aUrl = null, aTitle = null) {
    // If aUrl is provided, we want to bookmark that url rather than the
    // the current page
    let isCurrentBrowser = !aUrl;
    let url = aUrl ? new URL(aUrl) : new URL(aBrowser.currentURI.spec);
    let info = await PlacesUtils.bookmarks.fetch({ url });
    let isNewBookmark = !info;
    if (!info) {
      let parentGuid = PlacesUtils.bookmarks.unfiledGuid;
      ...

Сustom Buttons » Custom Buttons » 10-09-2018 13:48:38

func4ptch4 пишет:

AutoPopup обновил код выше, можешь проверить? просто боюсь что не так сделал.

При замене синтаксис не пострадал.

func4ptch4 пишет:

И надо ли менять код в коде ниже. Вроде он подхватывает везде, и менять как я понял необязательно.

Кто «он»? Код ниже? Он и сам необязателен.
AutoPopup раскрывает в том числе и папки закладок на панели закладок.

И безотносительно: документация говорит, что метод openPopup
принимает в качестве второго аргумента строку, указывающюю позицию,
или объект, в котором, соответствующим образом именованые свойства,
могут выступать вторым и последующими аргументами.

Но если ты хочешь, чтобы вместо этого у тебя там торчала минус единица, то пожалуйста.
Ошибка не образуется, и это Custom всё ещё Buttons.

drage2 пишет:

tooltip - пришлось в русификатор лезть, appmenu.tooltip - в самой кнопке не могу сделать...

Не понял. Что случилось?
[spoiler][code]document.getElementById("PanelUI-menu-button").setAttribute(
    "tooltip

Сustom Buttons » Custom Buttons » 09-09-2018 16:58:44

func4ptch4 пишет:

если заменить showPopup на openPopup.
В общем очень удобно но работает криво! ну не красиво открывает меню

Заменить-то заменил, но вызываешь openPopup() с аргументами,
которые остались от showPopup, вот и криво.

Теперь замени -1,-1,'popup','bottomleft','topleft' на "after_start"
и смотри, открывает ли красивее.

Dobrov пишет:

нужно, чтобы меню PanelUI открывалось правой кнопкой мыши, а на левую назначить своё действие.

Так подойдёт?

скрытый текст

Выделить код

Код:

(btn => {
    addEventListener("mousedown", e =>
        e.button || e.stopPropagation() || SidebarUI.toggle("viewHistorySidebar")
    , true, btn.parentNode);

    addEventListener("contextmenu", e =>
        e.ctrlKey || e.preventDefault() || PanelUI.show(e)
    , false, btn);

})(document.getElementById("PanelUI-menu-button"));

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 08-09-2018 20:25:48

ser8nik
Ну, если прям так раздражает, попробуй так

Выделить код

Код:

#TabsToolbar > hbox.titlebar-placeholder[type="pre-tabs"] {
    border-inline-end: none !important;
}

Сustom Buttons » Custom Buttons » 08-09-2018 14:30:13

xrun1 пишет:

Твой config.js надо добавлять в этом случае по принципу "кашу маслом не испортишь"

Нет, если подходит сам принцип правки omni.ja, то следует
отдать предпочтение ему и мой config.js не использовать.
Просто потому, что в коде могут быть косяки (и уже бывали).

xrun1 пишет:

Осталась пара хотелок

Там странное «Можно ли сделать с помощью css следующие 2 вещи».
Можно вот ровно на столько, насколько и vertical_top_bottom_bar.
Но получится ли ...
[spoiler][code]@-moz-document url(chrome://browser/content/browser.xul) {
    #PlacesToolbarDropIndicator {
        --code:(bar => {
            var listener = {
                id: undefined,
                handleEvent(e) {this[e.type](e);},
                events: ["mouseover", "popuphidden"],
                get chevron() {
                    delete this.chevron;
                    return this.chevron = document.getElementById("PlacesChevron"

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 06-09-2018 16:02:21

drage2 пишет:

Dumby
А просто кода "очистить историю закрытых вкладок" нет?

В кнопке? Есть. Экстракт что ли нужен?

var closedTabCount = SessionStore.getClosedTabCount(window);
while(closedTabCount--) SessionStore.forgetClosedTab(window, 0);

Сustom Buttons » Custom Buttons » 06-09-2018 15:59:13

drage2 пишет:

Рихтовал,рихтовал

Не вижу никакого рихтования.
С id на GUID'ы не перешёл, mozIAsyncFavicons торчит в коде,
хотя его уже всосало в другое место.
Вот, например, начальный аналог - пункт с адресами, дальше сам.
[spoiler][code]addEventListener("popupshowing", {
    handleEvent(e) {
        if (e.target.id != "placesContext" || this.shouldHide(e.target))
            return;
        var add, menuitem = document.createElement("menuitem");
        menuitem.setAttribute("label", "Восстановить иконки всех закладок");
        menuitem.setAttribute("oncommand", "handleCommand();");
        menuitem.handleCommand = this.cmd.bind(this);
        (add = e => e.target.querySelector(
            "#placesContext_sortBy\\:name"
        ).before(menuitem))(e, menuitem);
        addDestructor(() => menuitem.remove());

        this.handleEvent = e => {
            if (e.target.id != "placesContext") return;
            var

Сustom Buttons » [CB]Custom Buttons Editor: Toggle on Top » 05-09-2018 06:08:01

Infocatcher
Bug 1476678 - Remove document.persist from XULDocument
Вроде работает

скрытый текст

Выделить код

Код:

                //root.id && document.persist(root.id, this.onTopAttr);
                if(root.id) {
                    if("persist" in XULDocument.prototype)
                        document.persist(root.id, this.onTopAttr);
                    else
                        Services.xulStore.persist(root, this.onTopAttr);
                }

Сustom Buttons » Custom Buttons » 05-09-2018 06:06:12

Dumby пишет:

«Merge Day!»

А вот и нет. Это только в календаре так написано.
Между тем, успели уже menulist в CB-редакторе испортить.
Переложил немного стилей в скрипт, и у меня на Win7 снова нормально отображается,
но как на других OS'ях посмотреть негде.
Вобщем, custom_buttons-0.0.5.9.0.3-fx.xpi, если может у кого бета.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 02-09-2018 20:24:40

xrun1 пишет:

При восстановлении всех вкладок первым кликом срабатывает восстановление последней закрытой

Ну не знаю, у меня ПКМ > «Восстановить все вкладки» — восстанавливает все вкладки.
FF 63.0a1 (2018-09-02). Никакие настройки в коде Undo Close Tabs не трогал.

xrun1 пишет:

при повторном - восстанавливаются все вкладки. После этого меню кнопки недоступно ни по ЛКМ, ни по ПКМ, пока не закроем хотя бы одну вкладку.
После очистки истории закрытых вкладок меню кнопки также недоступно.

Ну конечно недоступно, закрытых вкладок то больше нет, они все восстановлены.
А уж тем более после очистки истории закрытых вкладок, нет истории — нечего показывать.
И по ЛКМ никакого меню и не должно быть.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 02-09-2018 18:12:58

xrun1 пишет:

отвалится расширение Undo Closed Tabs Button

Как любителю CustomizableUI, могу предложить эксперимент.

Топаем к Infocatcher'у за кодом
Undo_Close_Tabs > undoCloseTabs.js > Raw

Вставляем куда написано. Смотрим что может пойти не так.
Закрытые окна и вкладки, естественно, должны быть в наличии.
[spoiler][code]CustomizableUI.createWidget({
    id: "add-undo-close-tabs",
    label: "Undo Close Tabs",
    onCreated(btn) {
        Services.scriptloader.loadSubScript(this.url, btn, "UTF-8");
        var tmpl = btn.options.menuTemplate;
        var ind = tmpl.indexOf("buttonMenu");
        ind != -1 && tmpl.splice(ind, 1)
        && tmpl[--ind] == "separator" && tmpl.spl

Сustom Buttons » Custom Buttons » 31-08-2018 02:18:32

func4ptch4 пишет:

А такой костыль не пашет? через правку omni.ja, пробовал но бывает через время слетает.

Ну почему же, вполне себе пашет.
Rob W не стал бы патчер предлагать если б не работало.

Я, например, прямо в Notepad++ omni.ja подправил, даже задумываться
ни о чём не надо, поскольку количество символов не меняется.

Интересно, а при каких обстоятельствах слетает?

drage2 пишет:

Не подскажите, где здесь поганка завернута? В 60 - ок, 61-62  -правый клик не того..

Где поганка завёрнута я уже говорил.
Надо лишь по ссылкам проследовать.

И не указано что за «menu».
Если оно добавлено к кнопке, то, в общем случае, как-то так.
[spoiler][code]this.onclick = e => {
    if (e.target != this) return;
    if (!e.button) {

        alert("left click");
    }
    else if (e.button == 1) gShowPopup(this);
}
this

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 28-08-2018 07:17:10

xrun1 пишет:

Должно быть так?

Нет не так, и уж точно никакое не должно́. Пробуй как-нибудь,
но возню с протоколоми и хостом оставим заинтересованным.
[spoiler][code]CustomizableUI.createWidget({
    id: "add-open-passwordmanager",
    label: "Менеджер паролей",
    tooltiptext: "Сохранённые логины",
    onCommand(e) {
        var host;
        try {var {host} = e.view.gBrowser.currentURI;} catch(ex) {}
        e.target.LoginHelper.openPasswordManager(e.view, host);
    },
    onCreated(btn) {
        btn.setAttribute("image", "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////////////////////////////////////////////////////////////////////////9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD////////////XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA////////////14MA/9eDAP//////////////////////14MA////////////14MA/9eDAP/XgwD/14MA/9eDAP///////////9eDAP

Сustom Buttons » Custom Buttons » 27-08-2018 17:25:01

«Merge Day!». Снова я со своим раскладом.

custom_buttons-0.0.5.9.0.2-fx.xpi.

Конфигурация здесь.

Сustom Buttons » Custom Buttons » 23-08-2018 18:01:18

momo2000
Уничтожение конфигурационного файла решили временно отложить.
Поэтому, внимание, — новая дополнительная третья настройка.

config-prefs.js

Выделить код

Код:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "config.js");
pref("general.config.sandbox_enabled", false);


Код для конфигурационного файла.
[spoiler=config.js]

Выделить код

Код:

//
try {(code => {
    var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
    var jsval, evl = true, re = e => Cu.reportError(e), imp = name => {try {
        return Cu.import(`resource://gre/modules/addons/${name}.jsm`, {});
    } catch(ex) {}}
    if ((jsval = imp("AddonSettings"))) {
        jsval.AddonSettings = {ADDON_SIGNING: false, REQUIRE_SIGNING: false, ALLOW_LEGACY_EXTENSIONS: true};
        try {evl = jsval.eval("this") === jsval;} catch(ex) {evl = false;}
    }
    var jsvals = ["XPIProvider", "XPIInstall"].map(imp).filter(i => i);

Сustom Buttons » Custom Buttons » 05-08-2018 23:25:05

func4ptch4
[spoiler]

А где можно посмотреть все изменения в коде? ну какие там поменялись, или можешь список написать (если не трудно).

Список изменений в коде Firefox? Ну, давай прикинем.

Вот, например, на иноязычном форуме, в теме Firefox Builds Josa ведёт лог изменений.
Открой три-четыре страницы типа «The first official 201xxxxx builds are out».
Каждая — это список изменений примерно за сутки.
Теперь умножь на тот период, за который хотелось бы видеть список.
Представил объём?

Разумеется, непосредственное отношение к CB
имеет лишь мизерная часть, но кто отфильтрует?

вопрос насчет Components.utils он как я понял пишется Cu? и Components.Constructor не меняется?

Да.

Также как понял Components.classes и Components.interfaces, они как бы универсальные? то есть работают там и там

Ну, в общем случае, да.
Но если кто-то осмелится в…ть [url=https://bugzilla.mozilla.org/sh

Сustom Buttons » Custom Buttons » 04-08-2018 20:03:19

Alex_one
Просто скопировать, открыть кнопку на редактирование,
и вставить в нужную колонку на нужную позицию.

А записал как \uXXXX\uXXXX только потому, что форум отказывается
принимать код с символом как он есть. Обрезает сообщение и всё.

Сustom Buttons » Custom Buttons » 04-08-2018 18:29:39

Viatcheslav пишет:

На [firefox] 57.0.4, к сожалению, добавляет символы только в адресную строку и строку поиска. В текстовых полях страниц Интернета по-прежнему не фурычит

Ну правильно, речь-то шла про 61, поэтому используется сахар,
добавленный для Firefox 60+. А для 57, у того, что грузится в другой процесс,
Cc и Ci следует писать полностью — Components.classes и Components.interfaces

Вот, кстати, варант с символами в несколько колонок.
Если css не нужен, или не подходит, но подгонять не предполагается,
то раскомментируйте //0&&
[spoiler][code]this.type != "menu" ? this.type = "menu" : (popup => {

    var columns = [
        "¤ ¦ § © « » ¬ ® ° ± µ ¶ — ‘ ’ “ ” • ‰ ‹ › ™",
        "… ≈ ≠ × ✓ ✗ ⊞ ⊞ ⊞ ⊞ ⊞ ⊞ ⊞ ⊞ ⊞ ⊞ ⊞",
        "\uD83E\uDD8A \uD83D\uDE0E ⊞ ⊞ ⊞ ⊞ ⊞ ⊞ ⊞"
    ];
    var css = //0&&
    `
        #${_id} menuitem > .menu-text {
            font-size: 22px;
            font-family: Consolas, Rockwell, Ver

Сustom Buttons » Custom Buttons » 02-08-2018 15:21:22

firepox пишет:

что нужно изменить в коде, чтобы при клике на кнопку выполнялось действие?

Ничего в коде изменять не нужно.
Код нужно удалить из вкладки Инициализация, а во вкладку Код положить
for(var br of gBrowser.browsers) try {br.stop();} catch(ex) {}

vitalii201 пишет:

Вставка символа можно адаптировать к [firefox] 61?

Поскольку «this. type = "menu-button";» больше нет, то возиться
с собственной реализацией и стилями нужно каждому самому.
А если нужен просто пример вставки, то вот
[spoiler][code]this.type != "menu" ? this.type = "menu" : (popup => {

    var symbols = "¤ ¦ § © « » ¬ ® ° ± µ ¶ — ‘ ’ “ ” • ‰ ‹ › ™";
   
    var inserter = {
        get docShell() {
            delete this.docShell;
            return this.docShell = "docShell" in document
                && document.docShell instanceof Ci.nsIDocShell
           

Сustom Buttons » Custom Buttons » 28-07-2018 00:56:39

func4ptch4 пишет:

кнопки где ShowPopup если заменить на OpenPopup, то работают но без попапа
В общем для меня эта слишком сложно понять, прошу вашей помощи.... в чем может быть проблема

[spoiler]Bug 1446961 - Replace popup boxobject properties with element methods
XULPopupElement.webidl

Выделить код

Код:

//this._handleClick =()=> menuPopup.ShowPopup(this,-1,-1,"popup","bottomleft","topleft");var array=[
this._handleClick =()=> menuPopup.openPopup(this, "after_start");var array=[

Дэвид Флэнаган пишет:

JavaScript – это язык, чувствительный к регистру. Это значит,
что ключевые слова, переменные, имена функций и любые другие идентификаторы языка
должны всегда содержать одинаковые наборы прописных и строчных букв.

Например, ключевое слово while должно набираться как «while», а не «While» или «WHILE».
Аналогично online, Online, OnLine

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]