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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№1460105-05-2020 08:16:57

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 313
UA: Firefox 76.0

Re: Custom Buttons

Dumby
В FF76 перестала работать кнопка

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

Выделить код

Код:

// Дв. клик по панели вкладок..............
(selectors => addEventListener("dblclick", e => {
    /*
    if (
        e.button || e.ctrlKey || e.shiftKey || e.altKey
        || !e.originalTarget.matches(selectors)
    )
*/
    if (e.button || e.ctrlKey || e.shiftKey || e.altKey || !(
        e.target.className == "tabbrowser-arrowscrollbox"
        || e.originalTarget.matches(selectors)
    ))
        return;
    var hbuTabs = [], param = {animate: false};
    gBrowser.selectedTab = gBrowser.tabs[0];
    for(var tab of gBrowser.visibleTabs.reverse())
        //if (tab.pinned) break; else
        gBrowser._hasBeforeUnload(tab)
            ? hbuTabs.push(tab)
            : gBrowser.removeTab(tab, param);
    for(tab of hbuTabs)
        gBrowser.removeTab(tab, param);
}, false, document.getElementById("TabsToolbar") || 1))("" + [

    "#tabbrowser-tabs [class*=scrollbox]",
    "toolbarspring",
    "#TabsToolbar",
]);


Можно починить?

Отсутствует

 

№1460205-05-2020 09:50:00

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 76.0

Re: Custom Buttons

Dumby пишет

«Merge Day»

custom_buttons-0.0.7.0.0.12-fx.txt

egorsemenov06 пишет

Выручайте в кнопке Save  не работает Открыть выделенный текст в внешнем редакторе, в контекстном меню. в консоле пишет ReferenceError: custombuttonsUtils is not defined

Да, за всем не уследишь.

Большое спасибо!!!

Отсутствует

 

№1460305-05-2020 12:08:50

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 68.0

Re: Custom Buttons

Garalf пишет

В FF76 перестала

Bug 1625895 - Change tabbrowser-arrowscrollbox from class to id
Так, наверно

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

Выделить код

Код:

//e.target.className == "tabbrowser-arrowscrollbox"
e.target.id == "tabbrowser-arrowscrollbox"

Отредактировано Dumby (05-05-2020 12:11:01)

Отсутствует

 

№1460405-05-2020 20:27:54

Garalf
Участник
 
Группа: Members
Зарегистрирован: 19-09-2017
Сообщений: 313
UA: Firefox 76.0

Re: Custom Buttons

Dumby
Как всегда)! Большое спасибо!

Добавлено 05-05-2020 20:30:31
egorsemenov06
У меня все работает

Отредактировано Garalf (05-05-2020 20:30:31)

Отсутствует

 

№1460506-05-2020 13:53:22

Quartz1t
Участник
 
Группа: Members
Зарегистрирован: 25-11-2013
Сообщений: 111
UA: unknown 0.0

Re: Custom Buttons

Dumby пишет

«Merge Day»
custom_buttons-0.0.7.0.0.12-fx.txt

В следйющей версии дополнения, добавьте пожалуйста строку для Pale Moon 29, чтобы не ругался....
С 27-й, т.к. есть ещё фанаты остающиеся на этой версии браузера.


Выделить код

Код:

<!-- Pale Moon -->
		<em:targetApplication>
			<Description>
				<em:id>{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4}</em:id>
				<em:minVersion>27.0</em:minVersion>
				<em:maxVersion>*</em:maxVersion>
			</Description>
		</em:targetApplication>

То бишь Pale Moon 29 ругается на дополнения без этой подпись.

Отредактировано Quartz1t (06-05-2020 13:57:17)

Отсутствует

 

№1460607-05-2020 08:58:07

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 476
UA: Firefox 76.0

Re: Custom Buttons

Dumby подскажи на 76 выскакивает вот такая ошибка
TypeError: Custom Buttons: addEventListener: eventTarget is not instanceof nsIDOMEventTarget or EventTarget
Причем, если открыть и закрыть кнопку, то код работает

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

Выделить код

Код:

// Редактировать размеры поля выбора вкладок в окне добавления закладки звёздочки
((panel, css) => addEventListener("popupshowing", {
    pref: "CB.editBMPanel_folderTreeRow_WidthHeight",
    handleEvent(e) {
        css = encodeURIComponent(css.replace(/;/g, " !important;"));
        var args = ["data:text/css," + css, windowUtils.USER_SHEET];
        windowUtils.loadSheetUsingURIString(...args);

        var row = this.row = document.getElementById("editBMPanel_folderTreeRow");
        addEventListener("popuphidden", this, false, panel);

        addDestructor(reason => {
            windowUtils.removeSheetUsingURIString(...args);
            row.removeAttribute("width");
            row.removeAttribute("height");
            reason == "delete" && Services.prefs.clearUserPref(this.pref);
        });
        this.handleEvent = e => e.target == panel && this[e.type]();
        this.popupshowing();
    },
    popupshowing() {
        var [width, height] = Services.prefs.getStringPref(this.pref, "332 184").split(" ");
        this.row.width = width; this.row.height = height;
        gEditItemOverlay.toggleFolderTreeVisibility();
    },
    popuphidden() {
        var {width, height} = this.row;
        Services.prefs.setStringPref(this.pref, width + " " + Math.max(184, height));
    }
}, false, panel || 1))(document.getElementById("editBookmarkPanel"), `

    #editBookmarkPanel #editBMPanel_folderTreeRow {
        resize: both;
        overflow: hidden;
        min-width: 332px;
    }

    #editBookmarkPanel box.panel-header {
        padding: 0;
        border: none;
    }
    #editBookmarkPanel #editBookmarkPanelRows {
        padding-top: 0;
    }
    #editBookmarkPanel #editBMPanel_keywordRow,
    #editBookmarkPanel #editBMPanel_locationRow {
        visibility: visible;
    }
    #editBookmarkPanel #editBMPanel_tagsRow > hbox,
    #editBookmarkPanel #editBMPanel_folderRow > hbox,
    #editBookmarkPanel #editBookmarkPanelRows > vbox:not([id*="folderTree"]):not([id*="tagsSelector"]) {
        display: flex;
        align-items: center;
    }
    #editBookmarkPanel #editBMPanel_tagsField,
    #editBookmarkPanel #editBMPanel_folderMenuList,
    #editBookmarkPanel #editBookmarkPanelRows > vbox > label:first-child + * {
        flex-grow: 1;
    }
    #editBookmarkPanel moz-input-box {
        width: 100%;
    }
`);


и вот еще одна ошибка - TypeError: g.Utils is undefine
скрытый текст

Выделить код

Код:

//Открыть всё из папки закладок в новых вкладках не загружая страниц от 23.03.2019......................................................................
((g, id) => {
    addDestructor(r => r[5] == "e" && id in g && (g.PlacesUIUtils[id] = g[id]) && delete g[id]);
    if (id in g) return;

    g[id] = g.PlacesUIUtils[id];
    var func = g => PlacesUIUtils.openMultipleLinksInTabs = async function(nodeOrNodes, event, view) {

        var where, win = getBrowserWindow(view.ownerWindow);
        var newWin = !win || (where = win.whereToOpenLink(event, false, true)) == "window";

        var items = PlacesUtils.nodeIsContainer(nodeOrNodes)
            ? PlacesUtils.getURLsForContainerNode(nodeOrNodes)
            : Array.from(nodeOrNodes).filter(PlacesUtils.nodeIsURI);

        if (newWin) {
            var args = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
            args.appendElement(PlacesUtils.toISupportsString(items.shift().uri));
            win = Services.ww.openWindow(
                win || null, AppConstants.BROWSER_CHROME_URL, null, "chrome,dialog=no,all", args
            );
            if (!items.length) return;
            await new Promise(resolve => win.addEventListener("load", resolve, {once: true}));
        }

        var loadInBackground = where == "tabshifted";
        var insertAfterCurrent = !newWin && Services.prefs.getBoolPref("browser.tabs.insertAfterCurrent");
        var triggeringPrincipal_base64 =
            g.Utils.SERIALIZED_SYSTEMPRINCIPAL || g.E10SUtils.SERIALIZED_SYSTEMPRINCIPAL;

        var multi = items.length > 1;
        var params = {
            skipAnimation: multi || newWin,
            bulkOrderedOpen: multi,
            createLazyBrowser: true
        };
        if (insertAfterCurrent) params.index = win.gBrowser.selectedTab._tPos;

        var first = true;
        for(var {uri, title} of items) {
            if (insertAfterCurrent) params.index += 1;
            var tab = win.gBrowser.addTrustedTab(null, params);
            var state = {
                index: 1,
                hidden: false,
                attributes: {},
                lastAccessed: 0,
                entries: [{url: uri, title, triggeringPrincipal_base64}]
            };
            var image = await new Promise(resolve => PlacesUtils.favicons.getFaviconDataForPage(
                Services.io.newURI(uri),
                (uri, len, data, type) => {
                    if (!len) return resolve();
                    var reader = new FileReader();
                    reader.onloadend = () => resolve(reader.result);
                    reader.readAsDataURL(new Blob([new Uint8Array(data)], {type}));
                }, 16
            ));
            if (image) state.image = image;
            g.SessionStore.setTabState(tab, JSON.stringify(state));

            if (first) {
                first = false;
                if (newWin) continue;
                if (multi && insertAfterCurrent) params.index = tab._tPos;
              //  if (!loadInBackground) win.gBrowser.selectedTab = tab;
            }
        }
    }
    Services.scriptloader.loadSubScript("data:," + encodeURIComponent(
        `(${func})(Cu.import("resource:///modules/sessionstore/SessionStore.jsm", {}))`
    ), g);
})(Cu.import("resource:///modules/PlacesUIUtils.jsm", {}), "openMultipleLinksInTabs");

Отредактировано Andrey_Krropotkin (07-05-2020 09:26:01)

Отсутствует

 

№1460707-05-2020 15:23:40

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 68.0

Re: Custom Buttons

Andrey_Krropotkin пишет

подскажи на 76 выскакивает вот такая ошибка
TypeError: Custom Buttons: addEventListener: eventTarget is not instanceof nsIDOMEventTarget or EventTarget

Так и должно быть, специально написано: «panel || 1»,
чтобы листенер молча не ушёл в окно, если с panel что-то случится.
̣
А с panel случилось то, что её засунули в <html:template>,
и, похоже, собираются такое проделывать не только с ней.
У меня сейчас так:

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

Выделить код

Код:

((css, panel) => ({
	init() {
		panel = document.getElementById("editBookmarkPanel");
		if (panel) {
			addEventListener("popupshowing", this, false, panel);
			this.destroy && this.destroy();
			return;
		} else if (this.destroy) return;

		var mo = new MutationObserver(this.init.bind(this));
		mo.observe(document.getElementById("mainPopupSet"), {childList: true});
		addDestructor(this.destroy = reason => {
			mo.disconnect();
			if (reason) return;
			self._destructors.splice(self._destructors.findIndex(
				d => d.destructor == this.destroy
			), 1);
			delete this.destroy;
		});
	},
	pref: "CB.editBMPanel_folderTreeRow_WidthHeight",
	handleEvent(e) {
		css = encodeURIComponent(css.replace(/;/g, " !important;"));
		var args = ["data:text/css," + css, windowUtils.USER_SHEET];
		windowUtils.loadSheetUsingURIString(...args);

		var row = this.row = document.getElementById("editBMPanel_folderTreeRow");
		addEventListener("popuphidden", this, false, panel);

		addDestructor(reason => {
			windowUtils.removeSheetUsingURIString(...args);
			row.removeAttribute("width");
			row.removeAttribute("height");
			reason == "delete" && Services.prefs.clearUserPref(this.pref);
		});
		this.handleEvent = e => e.target == panel && this[e.type]();
		this.popupshowing();
	},
	popupshowing() {
		var [width, height] = Services.prefs.getStringPref(this.pref, "332 184").split(" ");
		this.row.width = width; this.row.height = height;
		gEditItemOverlay.toggleFolderTreeVisibility();

		gEditItemOverlay._paneInfo.visibleRows.add("keywordRow");
		gEditItemOverlay._element("keywordRow").collapsed = false;
		gEditItemOverlay._initKeywordField().catch(Cu.reportError);
	},
	popuphidden() {
		var {width, height} = this.row;
		Services.prefs.setStringPref(this.pref, width + " " + Math.max(184, height));
	}
}).init())(`

	#editBookmarkPanel #editBMPanel_folderTreeRow {
		resize: both;
		overflow: hidden;
		min-width: 332px;
	}

	#editBookmarkPanel box.panel-header {
		padding: 0;
		border: none;
	}
	#editBookmarkPanel #editBookmarkPanelInfoArea {
		display: none;
	}
	#editBookmarkPanel #editBookmarkPanelRows {
		padding-top: 0;
	}
	#editBookmarkPanel #editBMPanel_locationRow {
		visibility: visible;
	}
	#editBookmarkPanel #editBMPanel_tagsRow > hbox,
	#editBookmarkPanel #editBMPanel_folderRow > hbox,
	#editBookmarkPanel #editBookmarkPanelRows > vbox:not([id*="folderTree"]):not([id*="tagsSelector"]) {
		display: flex;
		align-items: center;
	}
	#editBookmarkPanel #editBMPanel_tagsField,
	#editBookmarkPanel #editBMPanel_folderMenuList,
	#editBookmarkPanel #editBookmarkPanelRows > vbox > label:first-child + * {
		flex-grow: 1;
	}
	#editBookmarkPanel moz-input-box {
		width: 100%;
	}
`);

и вот еще одна ошибка - TypeError: g.Utils is undefine

Можно так записать: g.Utils && g.Utils.SERIALIZED_SYSTEMPRINCIPAL
или вообще удалить.

Отсутствует

 

№1460807-05-2020 21:51:29

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 476
UA: Firefox 76.0

Re: Custom Buttons

Dumby спасибо, разобрался

Отсутствует

 

№1460910-05-2020 18:37:37

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 76.0

Re: Custom Buttons

Dumby сделайте пожалуйста эту кнопку для user_chrome_files

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

Выделить код

Код:

var closer = {
    observe: function(subject, topic, data) {
       if ( data == "shutdown" ){
            var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
         
file.initWithPath(file.path + "\\sqlite.bat");
file.launch();

}
}
};
Services.obs.addObserver(closer, "quit-application", false);

Отсутствует

 

№1461011-05-2020 08:43:01

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 68.0

Re: Custom Buttons

egorsemenov06
В custom_script.js

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

Выделить код

Код:

try {Services.obs.addObserver(function closer(s, topic, data) {
	Services.obs.removeObserver(closer, topic);
	if (data != "shutdown") return;
	var file = Services.dirsvc.get("ProfD", Ci.nsIFile);
	file.launch(file.append("sqlite.bat"));
}, "quit-application", false);} catch(ex) {Cu.reportError(ex);}

Отсутствует

 

№1461111-05-2020 10:20:55

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 76.0

Re: Custom Buttons

Dumby
В чем фишка custom_script.js , чем кнопка хуже? И почему батник, а не VBS ?

Отсутствует

 

№1461211-05-2020 11:19:10

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 76.0

Re: Custom Buttons

Dumby пишет

egorsemenov06
В custom_script.js

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

Выделить код

Код:

try {Services.obs.addObserver(function closer(s, topic, data) {
	Services.obs.removeObserver(closer, topic);
	if (data != "shutdown") return;
	var file = Services.dirsvc.get("ProfD", Ci.nsIFile);
	file.launch(file.append("sqlite.bat"));
}, "quit-application", false);} catch(ex) {Cu.reportError(ex);}

Большое спасибо!!!

Отсутствует

 

№1461311-05-2020 11:53:54

dezhnev
Участник
 
Группа: Members
Зарегистрирован: 21-04-2016
Сообщений: 72
UA: Firefox 73.0

Re: Custom Buttons

В чем фишка custom_script.js , чем кнопка хуже? И почему батник, а не VBS ?

тоже интересовал вопрос повальной переписью кнопок на ucjs, это конечно не плохо, я сам начал с ucjs, потом уже нашел кнопки)
но почему в формате Виталия, вероятно, чтобы поддерживать форум

погалаю, что автор предусматривает возможность закрытия поддержки CB, устал, понимаю :zzz:

Отсутствует

 

№1461411-05-2020 12:44:05

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 68.0

Re: Custom Buttons

solombala пишет

В чем фишка custom_script.js , чем кнопка хуже?

Код инициализации кнопок исполняется в каждом окне браузера,
после открытия окна, а также после редактирования и при взаимодействии
с режимом «Персонализация…» (при перетаскивании — многократно).


А custom_script.js исполняется только один раз, при старте браузера.
Говоря нестрого, его можно назвать филиалом config.js в профиле.
То есть, для данной задачи, подходит идеально.

И почему батник, а не VBS ?

А мне-то почём знать? Это надо спрашивать у того, кто запускает.


dezhnev пишет

вероятно,

погалаю, что

Да-да, вариант «просто потому, что чел попросил,
и попросил в определённом формате» совершенно невероятен,
примерно так же, как то, что всё зависит от факторов, куда более
серьёзных и могущественных, чем чьи-то там «предусмотрения».

Отсутствует

 

№1461511-05-2020 18:53:15

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 76.0

Re: Custom Buttons

DumbyГде косяк?
try {Services.obs.addObserver(function closer(s, topic, data) {
    Services.obs.removeObserver(closer, topic);
    if (data != "shutdown") return;
    var file = Services.dirsvc.get("ProfD", Ci.nsIFile);
    file.launch(file.append("\\memreduct\\s.vbs"));
}, "quit-application", false);} catch(ex) {Cu.reportError(ex);}

custom_script.js - в chrome лежит?

Отсутствует

 

№1461611-05-2020 19:21:02

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2129
UA: Firefox 68.0

Re: Custom Buttons

solombala
Косяк здесь: file.append("\\memreduct\\s.vbs")
Можно так: ["memreduct", "s.vbs"].forEach(file.append)


custom_script.js лежит в %Папка_Профиля%\chrome\user_chrome_files\custom_scripts

Отсутствует

 

№1461711-05-2020 19:46:06

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 76.0

Re: Custom Buttons

Dumby
Та ну...Ни кураца не работао ,курвье...И это тоже..

скрытый текст
try {Services.obs.addObserver(function closer(s, topic, data) {
    Services.obs.removeObserver(closer, topic);
    if (data != "shutdown") return;
    var file = Services.dirsvc.get("ProfD", Ci.nsIFile);
    file.launch(file.append("sqlite.bat"));
}, "quit-application", false);} catch(ex) {Cu.reportError(ex);}

Сам custom_script.js как выглядао?

Отредактировано solombala (11-05-2020 19:46:49)

Отсутствует

 

№1461811-05-2020 20:25:22

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 76.0

Re: Custom Buttons

solombala пишет

Dumby
Та ну...Ни кураца не работао ,курвье...И это тоже..

скрытый текст
try {Services.obs.addObserver(function closer(s, topic, data) {
    Services.obs.removeObserver(closer, topic);
    if (data != "shutdown") return;
    var file = Services.dirsvc.get("ProfD", Ci.nsIFile);
    file.launch(file.append("sqlite.bat"));
}, "quit-application", false);} catch(ex) {Cu.reportError(ex);}

Сам custom_script.js как выглядао?

Все работаетhttps://github.com/VitaliyVstyle/Vitali … f/toolbars подключаете скрипты и все в ажуре

Отсутствует

 

№1461911-05-2020 23:03:34

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 76.0

Re: Custom Buttons

egorsemenov06
Все так и делал...Батник не срабатывает...

Отсутствует

 

№1462011-05-2020 23:28:40

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 76.0

Re: Custom Buttons

solombala пишет

egorsemenov06
Все так и делал...Батник не срабатывает...

скрытый текст
97099ee49ae17ef68e173ef7c538e809.png

и перезапуск ПКМ

Отсутствует

 

№1462111-05-2020 23:29:46

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2074
UA: Firefox 77.0

Re: Custom Buttons

solombala
У тебя вообще user-chrome-files работает? настройки смотрел? about:user-chrome-files ?
перезапуск ПКМ после редактирования скриптов?

Отсутствует

 

№1462211-05-2020 23:36:13

egorsemenov06
Участник
 
Группа: Members
Зарегистрирован: 12-06-2018
Сообщений: 378
UA: Firefox 76.0

Re: Custom Buttons

del

Отредактировано egorsemenov06 (11-05-2020 23:37:15)

Отсутствует

 

№1462311-05-2020 23:40:40

solombala
Забанен
 
Группа: Members
Зарегистрирован: 20-07-2019
Сообщений: 652
UA: Firefox 76.0

Re: Custom Buttons

Vitaliy V.
Этот срабатывает

скрытый текст
try {Services.obs.addObserver(function closer(s, topic, data) {
    Services.obs.removeObserver(closer, topic);
    if (data != "shutdown") return;
    var file = Services.dirsvc.get("ProfD", Ci.nsIFile);
    file.launch(file.append("sqlite.bat"));
}, "quit-application", false);} catch(ex) {Cu.reportError(ex);}

Но путь хочу другой.... //"memreduct"/"s.vbs"

Отсутствует

 

№1462411-05-2020 23:59:01

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2074
UA: Firefox 77.0

Re: Custom Buttons

solombala
ну Dumby же тебе подсказал замени свой косяк
file.launch(file.append("\\memreduct\\s.vbs"));
на
file.launch(["memreduct", "s.vbs"].forEach(file.append));

P.S. это при условии что папка memreduct находится в профиле

Отредактировано Vitaliy V. (12-05-2020 00:05:43)

Отсутствует

 

№1462512-05-2020 06:28:51

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 592
UA: unknown 0.0

Re: Custom Buttons

del

Отредактировано Ultima2m (12-05-2020 07:10:54)

Отсутствует

 

Board footer

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