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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

Сustom Buttons » Custom Buttons » Вчера 14:58:39

ВВП пишет

Избавился от features в профиле, но эта шняга(trash) иногда вылазит. А в ней опять мутные аддоны...

Не знаю, у меня нет в профиле features. А от «мутных аддонов»,
возможно, избавит DisableSystemAddonUpdate в policies.json


Dobrov пишет

Чтобы кнопка переключения стиля страницы подгружала внешний CSS, который можно было бы изменять.

Я не вижу здесь со стороны браузера какого-то отказа читать CSS самому.
[spoiler][code](async () => CustomizableUI.createWidget({
    label: "Reader",
    tooltiptext: "ЛКМ:    Reader",
    id: "ucf_Reader",
    localized: false,
    onCreated(btn) {
        var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
        var args = [Services.io.newURI("chrome://user_chrome_files/content/custom_scripts/ucf_Reader.css"), sss.AGENT_SHEET];
        var reg = () => (this.flag = !this.flag) ? sss.loadAndRegisterSheet(...args) : sss.unregisterSheet(...args);

        (this.onCreated = btn => {
            btn._handleClick = reg;
            btn.style.setPro

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

voqabuhe пишет

пропали названия столбцов в about:config. Можешь подправить?

Да, с этим возился, но всё равно сейчас ещё поправлять пришлось.

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

А ещё, тогда зачем-то захотелось,
чтобы была возможность доступа и по адресу about:cfg


Для этого нужно прописать импорт jsm'ки в CustomStylesScripts.jsm
{ func: 'ChromeUtils.import("chrome://user_chrome_files/content/aboutconfig/UCFAboutConfigFluent.jsm");' },
ну, как на этой картинке (строка, предшествующая той, на которую указывает стрелка).


Плюс, иконку добавил в папку.
Следует заменить на свою, только чтоб название было favicon


zip-архив

Сustom Buttons » Custom Buttons » 16-10-2021 16:10:51

ВВП пишет

Тут reload идет на СКМ ...Чет знает зачем

Что ещё за зачемки, эту просили перерисовать, вот и идёт.

прилепить

Ну, например, если много не менять, то удалить это:

if (e.button) for(var br of gBrowser.browsers) try {
            this.domain(br) == domain && br.reload();
        } catch(ex) {}

И после true(e) { добавить
        if (e.button) return gShowPopup(self);

Сustom Buttons » Custom Buttons » 16-10-2021 13:41:30

Dobrov пишет

Как прочитать CSS (текстовый файл) в переменную? Данный код не работает

Интересно, зачем бы это могло понадобиться.
FileReader здесь совсем неудобен. Мало того, что ему
в качестве аргумента нужен Blob или File, так он ещё и читает асинхронно.
Можно так:
var green = Cu.readUTF8URI(Services.io.newURI("chrome://user_chrome_files/content/custom_scripts/ucf_Reader.css"));


Senflex пишет

Есть папка по пути C:\ФАЙЛЫ нужно вывести true или false в зависимости от того есть ли файл в папке.

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

Выделить код

Код:

var result = false, en = FileUtils.File("C:\\ФАЙЛЫ").directoryEntries;
while(en.hasMoreElements())
	if ((result = en.getNext().QueryInterface(Ci.nsIFile).isFile())) break;
alert(result);

Сustom Buttons » Custom Buttons » 15-10-2021 18:53:09

ВВП пишет

popup появляется , но пункт "удалить с панели..." не работает. При ctrl + ПКМ - работает ....Это как код поменяли

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


Custom Buttons 0.0.7.0.0.21
paxmod и bootstrap в zip-папке.

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 13-10-2021 23:18:45

EgorSokolov пишет

можете сделать, чтобы на FF-36/45 тоже работало?

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

Выделить код

Код:

…
                    var menuitem = this.parentNode.insertAdjacentElement(\%0A\
                        "afterend", document.getElementById(id)\%0A\
Выделить код

Код:

…
                    var menuitem = this.parentNode.parentNode.insertBefore(\%0A\
                        document.getElementById(id), this.parentNode.nextSibling\%0A\

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 13-10-2021 10:05:49

EgorSokolov пишет

А вы его у себя проверяли?

NT 6.1

CSS-стили » Настройка внешнего вида Firefox в userChrome.css » 12-10-2021 11:35:27

EgorSokolov пишет

выделил жирным шрифтом для наглядности

Сепаратор где?

перенести пункт кнопки "Bookmarks" > View Bookmarks Sidebar в меню Bookmarks

[spoiler][code]menuitem#bookmarksShowAll > hbox {
    -moz-binding: url('data:application/xml,<?xml version="1.0"?>\%0A\
        <bindings xmlns="http://www.mozilla.org/xbl">\%0A\
            <binding id="move_BMB_viewBookmarksSidebar"><implementation><constructor><![CDATA[\%0A\
                (id => {\%0A\
                    var menuitem = this.parentNode.insertAdjacentElement(\%0A\
                        "afterend", document.getElementById(id)\%0A\
                    );\%0A\
                    menuitem.id = "menu_" + id; // (?)\%0A\
                    menuitem.removeAttribute("class");\%0A\
                })("BMB_viewBookmarksSidebar");\%0A\
            ]]></constructor></implementation></binding>\%0A\
        </bindings>'
    ) !important;
}
menupopup#BMB_bookmarksPopup > menuitem#BMB_viewBookmarksSidebar

Сustom Buttons » Custom Buttons » 11-10-2021 20:12:57

sonyas75 пишет

ну вот, сейчас мне по рукам настучат

Разве не напрашивается :) :blush:


sonyas75 пишет

Senflex

Сustom Buttons » Custom Buttons » 11-10-2021 19:30:48

ALEX_45_ORP пишет

вставил код в кнопку СВ, появился в панели

Да, это код-установщик. Предназначен быть запущенным единожды.
Устанавливает поисковик как пользовательский, то есть данные,
в конечном итоге, пишутся в search.json.mozlz4 в профиле.
Держать код в кнопке не нужно, разве что во вкладке Код, если потребуется поставить снова
(удаление и установка [просто заново, или со сменой иконки и/или названия]).


Okralis пишет

Я новичок

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


Senflex пишет

Как лучше сделать ожидание, к примеру несколько секунд. setTimeout не совсем то...

Ты свои вопросы со стороны видел? Буквы что ли по талонам выдают?
Вот отстранись, и представь, что это спросили тебя. Что бы ты ответил?
[spoiler=Правда же лучше приблизительно как-то так?]
Написал код, в котором используется ожидание:

Выделить код

Код:

// Код

Как вы можете видеть, здесь применяется мет

Сustom Buttons » Custom Buttons » 10-10-2021 22:41:34

VORON
296-я строка
            .QueryInterface(Components.interfaces.nsIPlaintextEditor);
Удалить

Сustom Buttons » Custom Buttons » 10-10-2021 17:21:44

VORON пишет

Можно починить,чтоб с 91й версией заработало?

Удалить строку, на которую ругается консоль.


ALEX_45_ORP пишет

попробовал, в панели поиска не появился ...

«Проверить» и «попробовать» — имелось в виду как поиск пойдёт.
А «не появиться» в панели поиска он не может, не сочиняй.

Сustom Buttons » Custom Buttons » 10-10-2021 11:26:50

Алексей78 пишет

Не могли бы Вы подробнее описать, как это все сделать.

Лучше бы наоборот, мне почитать что уже сделано и что не получается.
Ладно, допустим UCF уже развёрнут, обновлён и работает.
[spoiler]
1. Идём в папку %Профиль%\chrome\user_chrome_files\custom_scripts
и создаём там текстовый файл с названием MMPaste.jsm
Расширение чтоб было .jsm, а не какой-нибудь .jsm.txt
Открываем файл на редактирование и заполняем содержимым скрипта,
кодировка подойдёт UTF-8 без BOM, сохраняем.


2. Теперь редактируем файл CustomStylesScripts.jsm (лежит в той же папке).
Добавляем предложенную строку после scriptsbackground: [ в скобки ], сохраняем.
Скриншот.


3. Осталось убедиться, что вкючена настройка middlemouse.paste
и в настройках UCF чтоб стояла галка
Включить скрипты:
[✔] В фоне [System Principal]


Всё. Там же, в настройках, жмём «Перезапустить*», и должно работать
как написано, только вставка не по клику СКМ, а по на

Сustom Buttons » Custom Buttons » 09-10-2021 17:54:16

Алексей78 пишет

возможно этот вопрос уже поднимался, а я просто не внимательно эту тему читал

Да нет, вроде никто не спрашивал.
Я когда-то давно его в jsm'ку перекладывал, а затем родили баг :usch:,
и пришлось на mousedown переделывать.


Вобщем, сейчас такой. В новом UCF, импортировать созданный модуль
можно добавив в конфигурационный CustomStylesScripts.jsm
в массив UcfStylesScripts.scriptsbackground объект вида
{ func: 'ChromeUtils.import("chrome://user_chrome_files/content/custom_scripts/MMPaste.jsm");' },
[spoiler=MMPaste.jsm][code]var MMPasteChild, EXPORTED_SYMBOLS = ["MMPasteChild"];
var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");

var sel = ":is(textarea,input):not([readonly],[disabled])";
var x, y, sn = Ci.nsISelectionController.SELECTION_NORMAL;
var inRect = r => y > r.top && y < r.bottom && x < r.right && x > r.left;

var mousedown = e => {
    if (e.button != 1) return;
    var tr

Скрипты » UCF-скрипты на этом форуме » 04-10-2021 18:42:27

egorsemenov06
Речь про initKeyEvent? Ну, конструктор нам рекоммендуют.

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

Выделить код

Код:

//        var evt = node.ownerDocument.createEvent("KeyboardEvent");
//        evt.initKeyEvent(
//            "keypress", true /*bubbles*/, true /*cancelable*/, node.ownerDocument.defaultView,
//            e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
//            e.keyCode, e.charCode
//        );

        var evt = new node.ownerGlobal.KeyboardEvent(
            "keypress", {bubbles: true, cancelable: true, ...e}
        );


Во второй ничего не смог заметить.

Сustom Buttons » Custom Buttons » 04-10-2021 17:15:15

Farby пишет

фишка "optionsType = 1" в manifest.json

Это где такое?
Есть <em:optionsType>1</em:optionsType> в install.rdf,
но там несовместимо с моим антиподписячим кодом.
В смысле разве что пришлось бы их объединить,
а это отдельный и неозвученный вопрос.


Вобщем, тяп-ляп скопировал файло,
но без добавления свойства "OPTIONS_TYPE_DIALOG" в AddonManager.
Могут быть проблемы, если какой-нибудь код будет написан так,
как если бы это свойство в нём есть, то есть ссылаться на него.
[spoiler][code]// bootstrap-loader.js
try {(ios => {
    var subst = "bootstrap-loader-config-script";
    ios.getProtocolHandler("resource").QueryInterface(Ci.nsIResProtocolHandler).setSubstitution(subst, ios.newURI(String.raw`
        data:,/%2A%2A%2A RDFDataSource.jsm %2A%2A%2A/%0A%0Aconst NS_XML = "http://www.w3.org/XML/1998/namespace";%0Aconst NS_XMLNS = "http://www.w3.org/2000/xmlns/";%0Aconst NS_RDF = "http://www.w3.org/1999/02/22-rdf-syntax-ns%23";%0Aconst NS_NC = "http://home.netscape.com/NC-rdf%23";%0A%0A

Скрипты » UCF-скрипты на этом форуме » 30-09-2021 11:39:56

Kot DaVinci
Можно после строки, содержащей node.setAttribute("label", label);
добавить строку, содержащую node.setAttribute("closemenu", "none");


Лучше во второй код, потому что там "таблетка от сепараторов" прописана,
ну, если фича "исключения скрытых" не мешает, конечно.

Firefox » Отключить Open Search Advertising » 29-09-2021 17:32:36

thrower пишет

Где в omni.ja это лежит?

%FOX%\browser\omni.ja\actors\LinkHandlerChild.jsm

Сustom Buttons » Custom Buttons » 26-09-2021 18:41:40

Senflex пишет

можно ли узнать через CB, есть интернет или нет. И вывести в alert, true или false. Типа команды ping в cmd.

Наверно можно HEAD-запрос на какой-нибудь адрес отправить

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

Выделить код

Код:

var url = "http://example.com";

var xhr = new XMLHttpRequest();
xhr.open("HEAD", url, true);
xhr.timeout = 2000;

var {channel} = xhr;
channel.loadFlags |= channel.LOAD_BYPASS_CACHE;

xhr.onreadystatechange = () => {

	if (xhr.readyState == xhr.HEADERS_RECEIVED) {
		xhr.onreadystatechange = null;
		alert(true);
	}
	else if (xhr.readyState == xhr.DONE)
		alert(false);
}
xhr.send();

Сustom Buttons » Custom Buttons » 25-09-2021 21:41:12

ВВП пишет

может скрипт какой?

Так у тебя под спойлером и есть скрипт.
Если его в custom_script_win.js добавить, то будет
вылезать подтверждение при закрытии (каждого) browser.xhtml окна.


Но только при закрытии лисьей кнопкой закрытия окна,
а не кнопкой в Windows-заголовке окна, Alt+F4 и прочим.


А если «вечно хлопнешь и браузер закрылся» дофантазировать как вывод
подтверждения перед закрытием последнего нормального браузерного окна,
то можно попробовать в инициализацию CB-кнопки добавить

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

Выделить код

Код:

window.toolbar.visible && (lst => ["close", "DOMWindowClose"].forEach(
	type => addEventListener(type, lst, true)
))(e => 
	e.target == window &&
	!Services.startup.restarting &&
	Array.from(browserWindows())
		.filter(w => !w.closed && w.toolbar.visible).length == 1 &&
	!Services.prompt.confirm(null, "ВНИМАНИЕ !", "Закрыть?") &&
	e.preventDefault()
);

Senflex пишет

Можно ли дополнить ваш код, моментальным сворачиванием cmd

Уж не знаю можно или нет,

Скрипты » UCF-скрипты на этом форуме » 25-09-2021 15:48:41

sandro79
Всё таки проверил дробные числа. Похоже работает.
Вот с шагом в одну десятую. Ну, это я уже просто так, на интерес.
[spoiler][code]viewBox="0 0 32 32"
viewBox="0.1 0.1 31.8 31.8"
viewBox="0.2 0.2 31.6 31.6"
viewBox="0.3 0.3 31.4 31.4"
viewBox="0.4 0.4 31.2 31.2"
viewBox="0.5 0.5 31 31"
viewBox="0.6 0.6 30.8 30.8"
viewBox="0.7 0.7 30.6 30.6"
viewBox="0.8 0.8 30.4 30.4"
viewBox="0.9 0.9 30.2 30.2"
viewBox="1 1 30 30"
viewBox="1.1 1.1 29.8 29.8"
viewBox="1.2 1.2 29.6 29.6"
viewBox="1.3 1.3 29.4 29.4"
viewBox="1.4 1.4 29.2 29.2"
viewBox="1.5 1.5 29 29"
viewBox="1.6 1.6 28.8 28.8"
viewBox="1.7 1.7 28.6 28.6"
viewBox="1.8 1.8 28.4 28.4"
viewBox="1.9 1.9 28.2 28.2"
viewBox="2 2 28 28"
viewBox="2.1 2.1 27.8 27.8"
viewBox="2.2 2.2 27.6 27.6"
viewBox="2.3 2.3 27.4 27.4"
viewBox="2.4 2.4 27.2 27.2"
viewBox="2.5 2.5 27 27"
viewBox="2.6 2.6 26.8 26.8"
viewBox="2.7 2.7 26.6 26.6"
viewBox="2.8 2.8 26.4 26.4"
viewBox="2.9 2.9 26.2 26.2"
viewBox="3 3 26 26"
viewBox="3.1 3.1 25.8 25.8"
v

Скрипты » UCF-скрипты на этом форуме » 25-09-2021 15:02:35

sandro79 пишет

сдвигается вверх и влево

Вот все центрированные варианты

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

Выделить код

Код:

viewBox="0 0 32 32"
viewBox="1 1 30 30"
viewBox="2 2 28 28"
viewBox="3 3 26 26"
viewBox="4 4 24 24"
viewBox="5 5 22 22"
viewBox="6 6 20 20"


Хотя, может можно не целые числа, не проверял.

добавьте пожалуйста css в js-код

Допустим, в атрибут style. Может не сработать,
если user или agent стилями приколочено, тогда снова дай знать.
[spoiler][code]CustomizableUI.createWidget({
    id: "Close-Tabs-button",
    label: "Закрыть другие вкладки",
    tooltiptext: "Закрыть другие вкладки",
    defaultArea: CustomizableUI.AREA_NAVBAR,
    localized: false,
    onCreated(btn) {
        btn.render = this.render;
        btn._handleClick = this.close;
        btn.setAttribute("image", "chrome://user_chrome_files/content/custom_styles/svg/panel-icon-cancel.svg");
    },
    render() {
        delete this.render;
        this.render();
        this.icon.style.setProperty("padding", "2px", "important");
    },
    close() {
        var gb = this.o

Скрипты » UCF-скрипты на этом форуме » 25-09-2021 13:33:51

sandro79
У меня снова предложение чуть поперёк просьбы.
Там <svg> 32x32, а <path> 20x20 по-центру,
то есть как бы отступ 6px со всех сторон (поэтому выглядит маленькой).


Но можно во viewBox подогнать x, y, width и height.
Допустим, максимально. Меняем в самой svg'ке viewBox="0 0 32 32"
на viewBox="6 6 20 20" и отступа не будет совсем, тогда будет выглядеть крупнее.
Если положительного результата не получится, дай знать, полезу в js-код.

Сustom Buttons » Custom Buttons » 24-09-2021 20:08:55

ВВП пишет

Хотелось бы только на левый клик

Тогда так

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

Выделить код

Код:

//		var listener = ({data}) => data ? run([data]) : notify();
		var listener = ({data}) => data ? run([data], true) : notify();
Выделить код

Код:

/*
	var run = args => {
		var file = FileUtils.File(path);
		(run = args => {
			if (!file.exists()) return custombuttons.alertBox("File not exists!", path);
			var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
			process.init(file);
			process.runwAsync(args, args.length);
		})(args);
	}
*/
	var run = (...a) => {
		var file = FileUtils.File(path);
		(run = (args, quit) => {
			if (!file.exists()) return custombuttons.alertBox("File not exists!", path);
			var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
			process.init(file);
			process.runwAsync(args, args.length);
			quit && goQuitApplication({});
		})(...a);
	}

Сustom Buttons » Custom Buttons » 24-09-2021 18:30:09

ВВП пишет

хотя бы на левый клик. Плеер запустился, а браузер - закрылся...И никак толком..

Не браузер, а окно браузера. Это не всегда одно и то же.
Закрыть браузер (выход из приложения) — это goQuitApplication({});


Не знаю что там за «никак толком», добавил после
process.runwAsync(args, args.length);
и всё работает как написано.


А вот чтобы только «на левый клик», чуть сложнее,
нужно аргументом пробросить, что запуск именно оттуда.
Но, судя по «хотя бы», видимо, необязательная задача.

Board footer

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