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

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

№1562602-06-2021 13:42:31

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 254
UA: Firefox 85.0

Re: Custom Buttons

Я переключил в about:config настройку browser.urlbar.openintab = true
Все адреса из адресной строки открываются в новых вкладках. Мне это удобно.

А можно сделать, чтобы, если я вставляю в адресную строку  алиас закладки, и если эта закладка - букмарклет (код начинается с javascript:), то она открывалась бы в текущей?

Отсутствует

 

№1562702-06-2021 23:24:06

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

Re: Custom Buttons

ВВП пишет

Поставим вопрос по другому: onclick="FullZoom.reset(); FullZoom.resetScalingZoom();"  - это клик  по масштабу в browser.xhtml , а мне надо такой код
Рихтовать сам browser.xhtml  - не прошло , как решить проблему ?

В смысле код в сам атрибут "onclick" вписать?
Тогда его надо сериализировать под это дело.


Вот, например, код — полный сброс, и установка твоего добра:

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

Выделить код

Код:

(lc => {
	var {_cps2, name} = FullZoom;
	_cps2.removeByName(name, lc, {handleCompletion() {
		_cps2.setGlobal(name, 1.15, lc);
		for(var [url, zoom] of Object.entries({

			"about:addons": 1.09,
			"hdrezka-ag.com": 1.21,
			"kinokrad.co": 1.21,
			"bigcinema.tv": 1.21,
			"filmix.ac": 1.21,
		}))
			_cps2.set(_cps2.extractDomain(url), name, zoom, lc);
	}});
})(Cu.createLoadContext());


А вот — этот же код, пропущенный через XMLSerializer,
и готовый быть вставленным как атрибут:
скрытый текст

Выделить код

Код:

(lc => {
	var {_cps2, name} = FullZoom;
	_cps2.removeByName(name, lc, {handleCompletion() {
		_cps2.setGlobal(name, 1.15, lc);
		for(var [url, zoom] of Object.entries({

			"about:addons": 1.09,
			"hdrezka-ag.com": 1.21,
			"kinokrad.co": 1.21,
			"bigcinema.tv": 1.21,
			"filmix.ac": 1.21,
		}))
			_cps2.set(_cps2.extractDomain(url), name, zoom, lc);
	}});
})(Cu.createLoadContext());

toxa пишет

А можно сделать, чтобы, если я вставляю в адресную строку  алиас закладки, и если эта закладка - букмарклет (код начинается с javascript:), то она открывалась бы в текущей?

Не уверен, но можно попробовать подсунуть свой gURLBar._whereToOpen()

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

Выделить код

Код:

(key => {
	var wto = gURLBar[key];
	gURLBar[key] = function() {
		try {
			var {keyword, url} = this._resultForCurrentValue.payload;
			if (keyword && url.startsWith("javascript:")) return "current";
		} catch {}
		return wto.apply(this, arguments);
	}
	addDestructor(() => delete gURLBar[key]);
})("_whereToOpen");

Отсутствует

 

№1562803-06-2021 01:22:48

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 87.0

Re: Custom Buttons

Dumby
А мне надо, чтобы сброс произошел здесь! При нажатии на zoom ! id=urlbar-zoom-button !
h3nhu77l.png
Вроде получилось, второй код вставил в browser.xtml  Класс ! И в полую очистку тоже надо вставлять, что и сделал. Благодарочка!

Отредактировано ВВП (03-06-2021 12:04:09)

Отсутствует

 

№1562903-06-2021 23:56:07

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 254
UA: Firefox 85.0

Re: Custom Buttons

Dumby пишет

Не уверен, но можно попробовать подсунуть свой gURLBar._whereToOpen()

Работает. Большое вам спасибо!

Отсутствует

 

№1563004-06-2021 12:46:07

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Осваиваю 89. Есть две проблемы: Поиск из контекста (все поисковики сразу) Помнится в schemas ритовали , но теперь никак.
И второе, не могу загасить Ctrl+ клик по папке с закладками и все они открываются...Как прибить это?
И код не работает : Теперь в browser-places.js все не так. и рихтануть не получается...
xulStore.setValue(
                doc, "PersonalToolbar", "collapsed", "true"
            );

Отредактировано ВВП (04-06-2021 21:37:50)

Отсутствует

 

№1563105-06-2021 08:48:09

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

Re: Custom Buttons

ВВП пишет

Поиск из контекста (все поисковики сразу) Помнится в schemas ритовали , но теперь никак.

Рихтовали не schemas, а ext-search.js
И рихтовка в Firefox 89 работает. Там только это убрали (баг),
что совершенно не важно.

не могу загасить Ctrl+ клик по папке с закладками и все они открываются...Как прибить это?

Для папок в Панели закладок, Меню, ...
%FOX%\browser\omni.ja\chrome\browser\content\browser\browser-places.js

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

Выделить код

Код:

/*
    // Only handle middle-click or left-click with modifiers.
    let modifKey;
    if (AppConstants.platform == "macosx") {
      modifKey = aEvent.metaKey || aEvent.shiftKey;
    } else {
      modifKey = aEvent.ctrlKey || aEvent.shiftKey;
    }

    if (aEvent.button == 2 || (aEvent.button == 0 && !modifKey)) {
      return;
    }
*/
    // Only handle middle-click or left-click with shift.
    if (aEvent.button == 2 || (aEvent.button == 0 && !aEvent.shiftKey)) {
      return;
    }


Для папок в боковой панели закладок (сайдбаре)
%FOX%\browser\omni.ja\modules\PlacesUIUtils.jsm
скрытый текст

Выделить код

Код:

/*
    // right-clicks are not handled here
    if (event.button == 2) {
      return;
    }
*/
    // right-clicks and left-clicks with ctrl-only are not handled here
    if (event.button == 2 || (event.button == 0 && event.ctrlKey && !event.shiftKey && !event.altKey)) {
      return;
    }

.....

/*
    let metaKey =
      AppConstants.platform === "macosx" ? event.metaKey : event.ctrlKey;
    let modifKey = metaKey || event.shiftKey;
*/
    let modifKey = event.shiftKey;

xulStore.setValue(
                doc, "PersonalToolbar", "collapsed", "true"
            );

Так #PersonalToolbar теперь же под настройкой
browser.toolbars.bookmarks.visibility

Отсутствует

 

№1563205-06-2021 10:30:37

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 446
UA: Firefox 91.0

Re: Custom Buttons

что-то я прям аж перепугался с выходом 89 :angry: ан, нет, поставил ночнушку, которая будет следующим релизом ЕСР, втулил в неё CB + UCF и все основополагающие, самые главные, просто величайшие и, без преувеличения, глобальные, кнопки заработали спокойно и легко. до стилей с изменением фейса доберусь может быть в бетке, это не такие важнейшие функции как кнопки. так что спасибо Dumby, Infocatcher и всем-всем причастным за еще больше года спокойной жизни :blush: :D


2021-06-05-101914.png

Отсутствует

 

№1563305-06-2021 11:32:56

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Все понял и разобрался...

Отредактировано ВВП (06-06-2021 21:35:20)

Отсутствует

 

№1563407-06-2021 02:20:19

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 741
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Вы когда то вешали минимизацию памяти на ЛКМ по ucf-mem-indicator. Вы не могли бы еще по ПКМ добавить открытие about:performance, а по Ctrl+ПКМ открытие about:debugging#/runtime/this-firefox? Хотелось бы иметь быстрый доступ к этим страницам без лишних кнопок.

Отсутствует

 

№1563507-06-2021 08:12:11

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

Re: Custom Buttons

_zt
Вариант

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

Выделить код

Код:

/*
			win.document.getElementById("star-button-box")
				.after(win.document.importNode(df, true));
			this.notify();
		})(win);
	},
*/
			var clone = win.document.importNode(df, true);
			clone.firstChild.oncontextmenu = this.about;
			win.document.getElementById("star-button-box").after(clone);
			this.notify();
		})(win);
	},
	about(e) {
		var gb = e.view.gBrowser;
		gb.selectedTab = gb.addTrustedTab(`about:${
			e.ctrlKey ? "debugging#/runtime/this-firefox" : "performance"
		}`);
	},

Отсутствует

 

№1563607-06-2021 12:14:48

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 741
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Спасибо. А как подсказку многострочной сделать?

Отсутствует

 

№1563707-06-2021 20:06:54

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

Dumby
А это окно можно фиксировать не по центру? Куда не выставлю, оно всегда в центре...
7aeqildt.png

Отсутствует

 

№1563808-06-2021 09:42:43

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

Re: Custom Buttons

_zt пишет

А как подсказку многострочной сделать?

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

Выделить код

Код:

/*
				"Some tooltip text."
*/
				"Some
tooltip
text."

ВВП пишет

А это окно можно фиксировать не по центру? Куда не выставлю, оно всегда в центре...

Вроде так работает в custom_script_all_win.js
(не в «... по событию "load" не раньше», а просто добавить в конец).

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

Выделить код

Код:

try {if (location == "chrome://global/content/commonDialog.xhtml") {
	let args = Array.from(arguments[0].enumerator, x => x.value);
	if (args.includes("Внимание !") && args.includes("Закрыть все вкладки ?")) {
		let bw = docShell.treeOwner.QueryInterface(Ci.nsIBaseWindow);
		bw.visibility = false;
		onpageshow = () => Promise.resolve().then(() => {
			moveTo(100, 100);
			bw.visibility = true;
		});
	}
}} catch {}

Отредактировано Dumby (08-06-2021 10:29:02)

Отсутствует

 

№1563908-06-2021 10:29:48

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Не...На все окна надо, типа...Окно переносится, но не фиксируется.
slru92y4.png
Хотя... Как это в один код объединить?  Расположение идеально !

скрытый текст
try {if (location == "chrome://global/content/commonDialog.xhtml") {
    let args = Array.from(arguments[0].enumerator, x => x.value);
    if (args.includes("Внимание !")) {
        let bw = docShell.treeOwner.QueryInterface(Ci.nsIBaseWindow);
        bw.visibility = false;
        onpageshow = () => Promise.resolve().then(() => {
            moveTo(570, 220);
            bw.visibility = true;
        });
    }
}} catch {}
try {if (location == "chrome://global/content/commonDialog.xhtml") {
    let args = Array.from(arguments[0].enumerator, x => x.value);
    if (args.includes("Подтверждение")) {
        let bw = docShell.treeOwner.QueryInterface(Ci.nsIBaseWindow);
        bw.visibility = false;
        onpageshow = () => Promise.resolve().then(() => {
            moveTo(570, 220);
            bw.visibility = true;
        });
    }
}} catch {}

Так,объединил. Как теперь OK на Да сменить?
twxejmwn.png

Отредактировано ВВП (08-06-2021 15:58:33)

Отсутствует

 

№1564008-06-2021 17:22:10

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

Re: Custom Buttons

ВВП пишет

Как теперь OK на Да сменить?

Перед bw.visibility = true;
document.getElementById("commonDialog")._buttons.accept.label = "Да";

Отсутствует

 

№1564108-06-2021 17:49:39

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

Dumby

Dumby пишет

Перед bw.visibility = true;
document.getElementById("commonDialog")._buttons.accept.label = "Да";

Класс! А то пришлось в локаль лезть..

Отсутствует

 

№1564208-06-2021 21:24:45

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Снова здорова...Нет поиска сразу, сначала в поиске появиться . А сразу искать в Duck ? Забыл где рихтануть..
r7svbanh.png
Это случается только при новой вкладке или пустой...

Отредактировано ВВП (09-06-2021 10:12:18)

Отсутствует

 

№1564309-06-2021 09:05:36

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 642
UA: Firefox 54.0

Re: Custom Buttons

Здравствуйте! На новых версиях лисы, не работает расширение CloseTab. Может умельцы сварганят кнопку?

Отсутствует

 

№1564409-06-2021 10:56:54

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

vv07

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bcharset%3Dutf-8%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAFAklEQVR42n2VW2wUZRTHzzczuzt7nb3Mtt3ttluVpo01waImYmygkVgKxURDvERToiaaGGKawAsxJj40JvIgPBhQeEDBgpLGAok8oCCEmhoUaCMILdDLlu12u/fZnb3M5fs8S+IDIk6y+XbOzvebc87//50l8JCr5dAhIkgSZwqCYAJwjFJGdN1k5bKxtG0be9g+8u9A++goKWQyVlsg4OScTj8CZQrgZIxpxDByCMzQbFYRRLEaHxw0/xcYOnKE2J3OoGa3P87c7m7mdHZRiyVi8rwDGNMxwxQpl2dYoXCFy+X+FJPJ+PzQUPU/gdGJCaF2+3Y7DYf7NEnqMd3udrDZZMpxLsyOB0JMfLjKdD1vqmqMU5TLYi53hhLye2FgQLkP2HHwIJ8vlTqM1atf1Xy+fiqKjxmYFX543EDqDzFCaH3l6r00DM2s1ZJEVX/lFWUUG3pB7+sr3QM+cuwYh2tT2Wp9U2ltfc2DmXXZbHYbBu9oGszrOtMwxTq2geNIh8UCbouF3UKBbpdKSZZOn7PEYl9ylcpUdft2nYSPHrUbptmjNTfvrHi9z6yVJOfrHg80CwK7pKpwKpeDm+UyeHie9LpcsFmSmNdqpT9VKjCSy5n5TGbeOjv7NczOflMbHk4Rz+7dYT4aHdRbWt6vCUJos8/Hf9jQwLodDjZfrbJTmQz3Wz4PMs/DgCyzHkkiWBs9ls/TL1IpklLVshCPX2DXr38iZLPXSOOePd2VVat26MHgRo1ST5fdDm81NMAWnw+asLQFzGSuWCQuBHa43cBj5heLRTaSTrOzikLKlJokk7nFpqd3SYXCWdJ2+HD/it+/S/N6u9FvNhGb3onQV2SZeykQYG2iyNDUBFUmJfztoqLA0WSSjeOaq4vFcRQKhUWYnv40QMgoCR44sDWPQMPr7QBBsKItqEXXyQa/n3uvtRVewDJRBGJQCtOqSkficXI4Hoe4rgPgy6AOLBbjcOPG5y5BGCFNe/duSgcCu0xZXo1AkTcMFkZR+7HsNxC4xutlVhSkLvRypcJOLy/DkcVFmFJVVrGhFzjOxAzvwrVrn0mEfE96R0aeGte0HTQYfJHxvLsVN6Mw8HI4zJ7w+VgVQWlNIw6MB7GnmVqNIJQeTyTYFVRfQ8PDysoduHr1o06v9wzZcvJk5OdE4u2aLL/LWSxN9VI/iEbZc7JM8qbJfllZIZPZLAmKImwIhVgXWipeLrNvFxfpgViMZUulGsRiEzA19XFPe/skkYaHHcDzvarPtxM8nu6+lhb7YFsbtNjt5DJ68Ie5OZhMpUB2OmEAX7Q5HAY7Kn0ahflqZsZMLy0twczMd7CwsB/GxhKkbWiIr1arEcXheKcciWxtiUSia5ubrWgTcj2XY3/lcrRYq4GA91GPhz0dDIIXe3clm6VXFxbyRjw+Djdv7gdKJ+D48eq9s2zt7LSgut36xo2DEAr1in5/M7HZRA2PmsnhycSM6seUUEot6BQevacrSt5YXv4D7t4dRVF+hBMn8vdNG7Jvn42NjT0JjY2bEPo8BAKPgsvlA7vdikCC44uBjl6p1coISEA2OwnJ5GlIJC5gLA3j4+zBAbt+vYUTxRDz+9cwn+9ZkKQuBAbr/sSSKG5UoFSaQ9hlyGQuYewWqKoC58+zB+bhP5ewbh1PGxtFarV6cB56MeQFwxCxYAPFK+J9gaRSBVYqqfhdg3Pn7vs7+BtcvogzqcGZngAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A%0Aself.image%20%3D%20%22data%3Aimage/png%3Bcharset%3Dutf-8%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAFAklEQVR42n2VW2wUZRTHzzczuzt7nb3Mtt3ttluVpo01waImYmygkVgKxURDvERToiaaGGKawAsxJj40JvIgPBhQeEDBgpLGAok8oCCEmhoUaCMILdDLlu12u/fZnb3M5fs8S+IDIk6y+XbOzvebc87//50l8JCr5dAhIkgSZwqCYAJwjFJGdN1k5bKxtG0be9g+8u9A++goKWQyVlsg4OScTj8CZQrgZIxpxDByCMzQbFYRRLEaHxw0/xcYOnKE2J3OoGa3P87c7m7mdHZRiyVi8rwDGNMxwxQpl2dYoXCFy+X+FJPJ+PzQUPU/gdGJCaF2+3Y7DYf7NEnqMd3udrDZZMpxLsyOB0JMfLjKdD1vqmqMU5TLYi53hhLye2FgQLkP2HHwIJ8vlTqM1atf1Xy+fiqKjxmYFX543EDqDzFCaH3l6r00DM2s1ZJEVX/lFWUUG3pB7+sr3QM+cuwYh2tT2Wp9U2ltfc2DmXXZbHYbBu9oGszrOtMwxTq2geNIh8UCbouF3UKBbpdKSZZOn7PEYl9ylcpUdft2nYSPHrUbptmjNTfvrHi9z6yVJOfrHg80CwK7pKpwKpeDm+UyeHie9LpcsFmSmNdqpT9VKjCSy5n5TGbeOjv7NczOflMbHk4Rz+7dYT4aHdRbWt6vCUJos8/Hf9jQwLodDjZfrbJTmQz3Wz4PMs/DgCyzHkkiWBs9ls/TL1IpklLVshCPX2DXr38iZLPXSOOePd2VVat26MHgRo1ST5fdDm81NMAWnw+asLQFzGSuWCQuBHa43cBj5heLRTaSTrOzikLKlJokk7nFpqd3SYXCWdJ2+HD/it+/S/N6u9FvNhGb3onQV2SZeykQYG2iyNDUBFUmJfztoqLA0WSSjeOaq4vFcRQKhUWYnv40QMgoCR44sDWPQMPr7QBBsKItqEXXyQa/n3uvtRVewDJRBGJQCtOqSkficXI4Hoe4rgPgy6AOLBbjcOPG5y5BGCFNe/duSgcCu0xZXo1AkTcMFkZR+7HsNxC4xutlVhSkLvRypcJOLy/DkcVFmFJVVrGhFzjOxAzvwrVrn0mEfE96R0aeGte0HTQYfJHxvLsVN6Mw8HI4zJ7w+VgVQWlNIw6MB7GnmVqNIJQeTyTYFVRfQ8PDysoduHr1o06v9wzZcvJk5OdE4u2aLL/LWSxN9VI/iEbZc7JM8qbJfllZIZPZLAmKImwIhVgXWipeLrNvFxfpgViMZUulGsRiEzA19XFPe/skkYaHHcDzvarPtxM8nu6+lhb7YFsbtNjt5DJ68Ie5OZhMpUB2OmEAX7Q5HAY7Kn0ahflqZsZMLy0twczMd7CwsB/GxhKkbWiIr1arEcXheKcciWxtiUSia5ubrWgTcj2XY3/lcrRYq4GA91GPhz0dDIIXe3clm6VXFxbyRjw+Djdv7gdKJ+D48eq9s2zt7LSgut36xo2DEAr1in5/M7HZRA2PmsnhycSM6seUUEot6BQevacrSt5YXv4D7t4dRVF+hBMn8vdNG7Jvn42NjT0JjY2bEPo8BAKPgsvlA7vdikCC44uBjl6p1coISEA2OwnJ5GlIJC5gLA3j4+zBAbt+vYUTxRDz+9cwn+9ZkKQuBAbr/sSSKG5UoFSaQ9hlyGQuYewWqKoC58+zB+bhP5ewbh1PGxtFarV6cB56MeQFwxCxYAPFK+J9gaRSBVYqqfhdg3Pn7vs7+BtcvogzqcGZngAAAABJRU5ErkJggg%3D%3D%22%3B%0A%0Athis.onclick%20%3D%20this.oncontextmenu%20%3D%20function%28event%29%20%7B%0Aif%20%28event.button%20%3D%3D%201%29%20%7B%0A%20if%20%28Services.prompt.confirm%28null%2C%20%22%u0412%u041D%u0418%u041C%u0410%u041D%u0418%u0415%20%21%22%2C%20%22%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%3F%22%29%29%20%20%0A%09%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B...gBrowser.tabs%5D.forEach%28%28tab%29%3D%3E%20gBrowser.removeTab%28tab%29%29%3B%20%0A%0A%7D%0A%0A%20if%28event.button%20%3D%3D%200%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%7B%0A%20%20gBrowser.removeTab%28gBrowser.selectedTab%29%3B%0A%7D%0A%20%20%20%20%20%0Aif%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%7B%0AgBrowser.selectedTab%20%3D%20Array.from%28gBrowser.tabs%29.reduce%28%28prev%2C%20curr%29%20%3D%3E%0A%09curr.closing%20%7C%7C%20curr.selected%0A%09%7C%7C%20curr._notselectedsinceload%20%21%3D%3D%20false%0A%09%7C%7C%20curr.lastAccessed%20%3C%20prev.lastAccessed%0A%09%09%3F%20prev%20%3A%20curr%0A%2C%20%7B%7D%29%3B%0A%0A%7D%20%20%20%20%20%20%0A%7D%3B%0A%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%20%0Athis.tooltipText%20%3D%20%22%u041B%u041A%u041C%3A%20%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%5Cn%u0421%u041A%u041C%3A%20%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%5Cn%u041F%u041A%u041C%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%u0441%u044F%20%u043D%u0430%20%u043F%u043E%u0441%u043B%u0435%u0434.%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%22%3B%20%20%0A%0Avar%20style%20%3D%20custombutton.buttonGetHelp%28self%29.replace%28/id/g%2C%20_id%29%3B%0Avar%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28style%29%29%3B%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Asss.loadAndRegisterSheet%28uri%2C%200%29%3B%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%0A%23id%3Ahover%3Anot%28%3Aactive%29%20%3E%20.toolbarbutton-icon%7B%0A%0A%09list-style-image%3A%20none%20%21important%3B%0A%09object-position%3A%2020px%200px%20%21important%3B%0A%09background-position%3A%20center%20%21important%3B%0A%09background-repeat%3A%20no-repeat%20%21important%3B%0A%20%20%20%20%20%20%20%20%0A%09background-image%3A%20url%28%22data%3Aimage/png%3Bcharset%3Dutf-8%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAE80lEQVR42n2UW2hUVxSG1z7XOSfJXE5mch0TNcZIFWxa6wW0pSha4yiiUi81gSpYfPFFKYRSqA9K+yK+tfQlFkwwEqpoVUytMWoNpMZGamlriG00Ok4ymVsy58y57L26RyrU1nbDeVl7n4//3+vfiwQCAXjZOl1eTgKSJEieJxFKBYaIDiHURPS2ZbMI/7HIP4EXa2tJOpNRDFUtKREEQ6Y0DIyVFHkeIWkOnEoxllMlqbA1k6H/Czzj9xNd1yO6bb9Shtgsy/JCASAqUqoDossYm3Q9734W8U5aFH+K6/rjfYlE4aXAO1VV0lg+31hD6bqgba/SBKGRKEpYYKyUWxaB20VBKIBtZzzLepgVhKGUrvfyvR/e4opfAJ6sqxPNVKqp2XXfNWx7vYrYILmuLjmOSBgjHAYEkYEgABUEpIQ4tucl8oR8n5OkHq6+f7mmzTwD9s+fz11BlZrPvzc7nd4O0Wiju3SpRlQVnNFRCA8MIFeFRWi+oYHYS5aAVFaG7sgI9V+/nkgiXh1TlC8sUbzbJssuuVZXpzHPWxUtFA4ZpvmGuWVLiX/HDpBqajA/OAjpc+cgcO0aQDBIrO3bIdDSgkooxMwrV0A8fpzmJif/GFXVEw8I+epDRZkkXaFQTb0ottU5zgdyoVBd2LtXrDhwALUFC9B5+hSnzp8XMgMDIIXDEI7FMLhyJWGmydKnTjF6+DCh4+PmuCz3/4z4yZQs3yPdtbXN8/P5gxWO8w7atj+3ejVEWlshtHEjiIEAOokEzDx4QMTSUihragJBljF34wYmOztR7+zk95CnSUJG7iO2TxnGd+RKY+P6SDzeHrLtZqBUpbqG06vehPKtW4Xwpk2oRCLFEJPih5Ri9uZNSHR1oe/MGRCSSRB5s7IAj34DOEorK3vIherqbZGpqfag6zZJAIrHDziKQtxdu4S6ffvAWLHiORCcZJI97uoi9rFjgGNj4ANA3lE2DfD4F4BjxO/vJKej0ZbKRKI97HmLOdDnSRK6s2YRafduqNu5E8r4XT5X6JkmPr10CeIdHaD09aFmmsCBlCscvwfwGTWMbnI5Fntd6u09GGFsrchYGc6dS7CtDWo3b8bQokVIbZtwZUTUdaIYBtrpNOFQNsFta7zTgm3TCYDRHwE+8i1e3Eu+3bMn6nR3vx+xrL2yKFZ53Gr9/v0YWbaMeDMzONHXR1LDw8QXiUDVmjVYOm8e2MkkPjp5kplHj6I1OWk/BBi4C/Bx7bp1w6TDMHRu9e3y6elDfoBmtbVVm80Vatx2emgIxnp6gF69Cr6KCvC3tWHNhg0gahomLl7E1JEjdCKReHIf4NQYwOcdgUCcfNrUJNqWFS1LpfbUz8xsq5wzp16LxRQeE2Ldvo3u4CDzstliXIje0IDi2rWgBoNg3rrF0v39mSeue/NXDmNc5ZeBQOHZW17iurLLp0vMstqqudqgrteqhPhEfn+i5wF38Kwx/A0zUBSkkkSnHSeTcN3b4wA9vCkXTgQCmRemTWcup55FfLUSoIVDV5YDzC0FCGk8SlIxgxzqArg2gMkB8RTAcIKPzzhAP68lv+GP4F/zcHM2K6uiWG0w9pqBuJzvLOTASDGf3BLjP+b4SPmdw4amAAZ5bSTPa2f/gr10Ym+0LLGKUp9KqV/lI4GXgh7PJw+iJwLwDEN2gpBsHjFfzPrXf4MV15+m8XiKOdVncQAAAABJRU5ErkJggg%3D%3D%22%29%20%21important%3B%7D%0A%7D%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано ВВП (09-06-2021 10:58:07)

Отсутствует

 

№1564509-06-2021 11:11:18

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 642
UA: Firefox 54.0

Re: Custom Buttons

ВВП
Даже лучше, чем заказывал. Благодарю

Отсутствует

 

№1564609-06-2021 11:19:36

vending_machine
Участник
 
Группа: Members
Зарегистрирован: 10-01-2020
Сообщений: 419
UA: Firefox 89.0

Re: Custom Buttons

vv07 пишет

Здравствуйте! На новых версиях лисы, не работает расширение CloseTab. Может умельцы сварганят кнопку?

Таже проблемма. Ещё раширение Bat Elolc барахлит. Не посмотрят ли умельцы

Результаты поиска для "CloseTab" – Дополнения для Firefox (ru):iron:

Отсутствует

 

№1564709-06-2021 12:31:23

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

Re: Custom Buttons

ВВП пишет

Нет поиска сразу, сначала в поиске появиться . А сразу искать в Duck ? Забыл где рихтануть..

Типа это что ли? (ответ).
В custom_script_win.js, и вот тут как раз в «... по событию "load" не раньше».


Собственно, эквивалентно такой правке
%FOX%\browser\omni.ja\modules\UrlbarSearchOneOffs.jsm

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

Выделить код

Код:

/*
    if (
      userTypedSearchString &&
      engine &&
      (event.shiftKey || where != "current")
    ) {
*/
    if (engine && !event.shiftKey) {


vending_machine
https://cdn.waterfox.net/AMO/xul/294/294922/   :dumb:

Отсутствует

 

№1564809-06-2021 12:58:46

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

Dumby

Dumby пишет

Собственно, эквивалентно такой правке
%FOX%\browser\omni.ja\modules\UrlbarSearchOneOffs.jsm

Класс! Тонкий ход! Сдохла кнопка "Увеличить изображение"

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

Выделить код

Код:

/*Initialization Code*/
addEventListener("popupshowing", {
    imgZoom: 190,   // на сколько увеличить изображение из меню
    scrollZoom: 20, // на сколько увеличивать/уменьшать колесиком мыши
    scrollTop: 1,   // или -1, переключение направление прокрутки для увеличение колёсиком

    receiveMessage(msg) {
        var container = document.documentElement
            .appendChild(document.createElement("div"));
        addDestructor(() => container.remove());
        var image = container.appendChild(document.createXULElement("image"));
        image.style.cssText = "width: 100% !important; height: 100% !important;";
        image.setAttribute("validate", "never");

        var st = container.style;
        var dz = this.scrollZoom/100 * this.scrollTop;
        var currScale = 1, x, y, initialZoom = this.imgZoom/100 - 1;

        var hide, props = ["width", "height", "left", "top"], p = n => n + "px";
        var set = (...args) => props.forEach((prop, ind) => st[prop] = p(args[ind]));

        (hide = () => {
            st.cssText = "position: fixed; display: none; z-index: 2147483647;";
            currScale = 1;
            image.src = null;
        })();
        container.onwheel = (e, ds = e.deltaY > 0 ? -dz : dz) => {
            if (currScale < .15 && ds < 0) return;
            st.transform = `scale(${currScale += ds})`;
            var {width, height, left, top, bottom, right} = container.getBoundingClientRect();

            if (height < innerHeight) {
                if (top < 0) st.top = p(y -= top);
                if (bottom > innerHeight) st.top = p(y -= bottom - innerHeight);
            }
            if (width < innerWidth) {
                if (left < 0) st.left = p(x -= left);
                if (right > innerWidth) st.left = p(x -= right - innerWidth);
            }
        }
        (this.receiveMessage = msg => {
            var {src, width, height, left, top} = msg.data;
            image.src = src;
            left -= mozInnerScreenX;
            top -= mozInnerScreenY;

            set(width, height, x = left, y = top);
            st.display = "block";
            container.onwheel(null, initialZoom);
            window.addEventListener("mousedown", hide, {once: true, capture: true});
        })(msg);
    },
    handleEvent(e) {
        if (!gContextMenu.onImage) return;
        var menuitem = document.createXULElement("menuitem");
        menuitem.setAttribute("label", "Увеличить размер");
        menuitem.className = "menuitem-iconic";
        menuitem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADZElEQVR42oXSe0xbVRwH8N8597a35e7SAmUFukGhY66AMiNzw4GvTCQLCssc4pQsmTOa+ERMlrktW1zigpnEuWn8x2eMmiVGMBDCFjS+cJHEDIk8RoSNV1+3tLWX3t72nnO8sETJFrfvP7/k5Pw+Ob9fDoLrYi8ow9GFUbq+5aRLrGraqQcX6hlF2wkFEWn6EDIJAyQy9+3VT58cWb6PrmvmjGZS/FSHlxbXtbtLobGqJlPKMhNepWb0V8hKpi8FNd/gzCCogbdmvtg/8C9gz9+Eor5x5nn2tDOZ98Dx2i3C/uYai9mOGCxiDQIIg1/PgUCEhyvDMox9PXYBkPzaaoAzAFL0yle7ShtqO/eWJ9w1vJ1oGsVzYhTNATMQG4Q1G40ldDw6PB339fs7VgMmA0jnHfioo6F9Z3tDYYJzKSZKMYcDvAILiICfZUNYEYFixMKpKBk8MfTTasBsACnngU/6Wg4+VL/VFSOmBHAYY1BAhzAvgmyMEIkh0EUOBD1Eu49eStwA5D3z4TcPv9TYdHvxEhXSGgaEIMkJkKAS+ONmSKYolOVqMBlRSd8bv8v/AQXlJoiHUE5rZ1tFa/Nhj1uVrCaNMoQxYSaIqDxAGqAuQ2XZ1iS8HUTpkZMXe1eATOdtiCcJblGe1a3PnWp0uEvfv3tbeX5RhSet/q3wxh6xgAncZUmw2hxEryQx9/LHE7I2RV5HNudGFAtcZsuQd919u/kiz56JOwobcjd6xerqKnB4HIB4RvMzCM1DGj8X0GD64pL2Xdf850z+4djKC8wl24XUpj1P75sdfe/+sSHoq3uQnSuwa+s2Vy5uubd2jQWUTAYchJK8HpyIzvv7p/rMkV/OzPeeGEWi+x6LufiR573h8VO7Zr4n9fEZNeiqXHOofFvPsKPkS1fKsX5JU6uNZQh8Wh/hRcuvOC3/fLXrcGj52yOo7zzU9udvbzbN9uglggK2MhsnvfiE0tY9tfed7vM98D+x53tx1DdG0Z2b97Ejf3SRSiGGCysyENvdoipZa4+/8NmPp8+N+Ei2ZEVpQhG71rdcqFFozD+xcoQugFUvlDS8wWsl8Uebk5C79ujjHwyc6R/309ysDBRauEzhJkG9ErAdG0xEe6yVkwqcr+549/zZgcmQ7pAEkH2TDG6RfwCoJI0uEWJP5QAAAABJRU5ErkJggg==");
        menuitem.setAttribute("oncommand", "handleCommand();");
        e.target.append(menuitem);
        addDestructor(() => menuitem.remove());
        menuitem.handleCommand = () => this.cmd();

        this.handleEvent = () => menuitem.hidden = !gContextMenu.onImage;
    },
    cmd() {
        var msg = "CB:GetImageScreenRectForMosuseZoom";
        var code = `(targetIdentifier => {

            var image = ChromeUtils.import("resource://gre/modules/ContentDOMReference.jsm")
                .ContentDOMReference.resolve(targetIdentifier);

            var mm = image.ownerGlobal.docShell.messageManager;
            var bu = mm.BrowserUtils || ChromeUtils
                .import("resource://gre/modules/BrowserUtils.jsm").BrowserUtils;

            mm.sendAsyncMessage("${msg}", Object.assign(
                {src: image.currentSrc}, bu.getElementBoundingScreenRect(image)
            ));
        })(`;
        messageManager.addMessageListener(msg, this);
        addDestructor(() => messageManager.removeMessageListener(msg, this));

        (this.cmd = () => {
            var {osPid} = gContextMenu.actor.manager.browsingContext.currentWindowGlobal;
            if (osPid == -1) osPid = Services.appinfo.processID;
            for(var ind = 0, len = Services.ppmm.childCount; ind < len; ind++) {
                var pmm = Services.ppmm.getChildAt(ind);
                if (pmm.osPid == osPid) break;
            }
            pmm.loadProcessScript("data:;charset=utf-8," + encodeURIComponent(
                code + JSON.stringify(gContextMenu.targetIdentifier) + ")"
            ), false);
        })();
    }
}, false, document.getElementById("contentAreaContextMenu") || 1);


Если кнопку не трогать, то здесь рихтануть? BrowserUtils.jsm ...Рихтанул,вроде заработала.

Отредактировано ВВП (09-06-2021 14:11:02)

Отсутствует

 

№1564911-06-2021 11:10:12

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 77
UA: Firefox 89.0

Re: Custom Buttons

Dumby
Кажись еще один код сдох ? Процесс - мульти!
// Проверка орфографии
addEventListener('click', e=> {
   if ( e.target.tagName && (e.target.tagName == 'TEXTAREA'|| e.target.tagName == 'INPUT'))
        e.target.setAttribute('spellcheck', 'true');
}, );

Отредактировано ВВП (11-06-2021 13:59:35)

Отсутствует

 

№1565011-06-2021 23:26:12

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

Re: Custom Buttons

ВВП пишет

код сдох

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

Отсутствует

 

Board footer

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