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

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

№972601-03-2021 17:14:39

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 570
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

harryk пишет

Добавил себе для руборда спойлер More

Поделись этой добавкой, нужный код.

Отсутствует

 

№972701-03-2021 17:17:12

harryk
Участник
 
Группа: Members
Зарегистрирован: 23-12-2019
Сообщений: 418
UA: Firefox 68.0

Re: Настройка внешнего вида Firefox в userChrome.css

rubel
Перед строкой 3.0.5.Spoiler вставить

More

Выделить код

Код:

3.0.5.   More|Спойлер|more|More||data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVQ4jWNgGKzgP7EKmSi1iWIDGJHY+JzNiEcOKxhCYTDwgNjQxRaojAwMwyIMKAYA3esECwxQ4k8AAAAASUVORK5CYII=

Отредактировано harryk (01-03-2021 17:18:03)

Отсутствует

 

№972801-03-2021 19:02:34

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

Re: Настройка внешнего вида Firefox в userChrome.css

rubel пишет

Есть замечательная кнопка для Custom Buttons - Перевод.
Переводит всю страницу, выделенный текст, может заменить выделенный текст переводом. А также переводит из буфера обмена.
Можно ли её адаптировать для UCF ?

Что значит «Можно ли»? Если работает в CB — значит можно. Только кто возьмётся?


Со своей стороны, могу только предложить попробовать обычную схему с подгрузчиком.
То есть, например, кладём приведённый код в папку custom_scripts и называем, допустим, google-translate.js


Затем добавляем подгрузчик прямо в custom_script_win.js


Или, создаём на диске файл с подгрузчиком, типа google-translate-loader.js
и подключаем его, ну так, как подключаются из custom_script_win.js другие остальные прочие,
которые грузятся в browser.xhtml, иначе говоря, на общих основаниях.


Но это довольно умозрительно, проверить не могу, в смысле сетевой части, я таким делам весьма посторонен.

подгрузчик

Выделить код

Код:

({
	async init() {
		await delayedStartupPromise;
		var code = Cu.readUTF8URI(Services.io.newURI(
			"chrome://user_chrome_files/content/custom_scripts/google-translate.js"
		));
		var addEventListener = (...args) => {
			var trg = args[3];
			if (!trg) trg = args[3] = window;
			trg.addEventListener(...args);
			this.handlers.push(args);
		}
		new Function(
			"_id,xhtmlns,addDestructor,addEventListener,gClipboard", code
		).call(
			this, "ucf-cbinit-google-translate", "http://www.w3.org/1999/xhtml",
			() => {}, addEventListener, {read: () => readFromClipboard()}
		);
		addEventListener("unload", this, {once: true});
	},
	handlers: [],
	handleEvent() {
		for(var args of this.handlers)
			args.pop().removeEventListener(...args);
		delete this.handlers;
	}
}).init();

harryk пишет

А такой # тег ниасилил [#]123[/#]. Со спецсимволами никак?

Двойной энкодинг на закрывающий тэг делать не стал,
подумал, ну что там такого может быть. Неее, найдут! :)

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

Выделить код

Код:

...

			//encodeURIComponent(`[${v1 + (v2 || "")}]`), `[/${v1}]`, v2 == "=%move%"
			encodeURIComponent(`[${v1 + (v2 || "")}]`), encodeURIComponent(`[/${v1}]`), v2 == "=%move%"

...

				//.replace(/%copy%|%move%/, mid) + (move ? "" : mid) + bb2;
				.replace(/%copy%|%move%/, mid) + (move ? "" : mid) + decodeURIComponent(bb2);

...

			//+ `'${encodeURIComponent(bb1)}', '${bb2}', ${move});`
			+ `'${encodeURIComponent(bb1)}', '${encodeURIComponent(bb2)}', ${move});`

...

Отсутствует

 

№972901-03-2021 19:39:12

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

Re: Настройка внешнего вида Firefox в userChrome.css

Dumby
Например, у меня есть текст в буфере обмена и мне надо его вставить в тегах, вместо того что бы вставлять, выделять и только потом обрамлять в теги.
В общем, "...|тег||%clipboard%|data:image..." можете сделать рабочим? Или типа того.

Отсутствует

 

№973001-03-2021 20:29:14

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 570
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Dumby

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

А ведь прекрасно получилось! Все работает точно так как и в Custom Buttons.
Спасибо, а можно также  подключить кнопку // Искать в ...  ?
Или еще как.

Отсутствует

 

№973101-03-2021 20:42:41

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

rubel пишет

кнопку // Искать в ...

Что, где и как ищет эта кнопка?

Отсутствует

 

№973201-03-2021 20:56:51

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 570
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

voqabuhe

Что, где и как ищет эта кнопка?

В контекстном меню при выделении появляется пункт Искать со списком всех поисковиков.

скрытый текст
74af5b82d77a4bc581a571d2fdff8505.png 

Отсутствует

 

№973301-03-2021 21:12:32

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

Re: Настройка внешнего вида Firefox в userChrome.css

_zt пишет

Например, у меня есть текст в буфере обмена и мне надо его вставить в тегах

Тяп-ляп %dclipboard%

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

Выделить код

Код:

...
	async bbc(trg) {
		var v1 = trg.getAttribute("value1");
		if (!v1) return;

		var win = trg.ownerGlobal;
		var v2 = trg.getAttribute("value2");
		var dc = "";
		if (v2) {
			if (v2.includes("%dclipboard%"))
				dc = v2.replace("%dclipboard%", await win.navigator.clipboard.readText()),
				v2 = false;

			else v2 = "=" + (
				v2.includes("%clipboard%") ? v2.replace(
					"%clipboard%", await win.navigator.clipboard.readText()
				) : v2
			);
		}
		win.gBrowser.selectedBrowser.messageManager.loadFrameScript(this.url(
			encodeURIComponent(`[${v1 + (v2 || "")}]${dc}`), encodeURIComponent(`[/${v1}]`),
			v2 == "=%move%", v2 === false

		), false);
	},
	url(...args) {
		var code = `((bb1, bb2, move, dc) => {
			var box = Cc["@mozilla.org/focus-manager;1"]
				.getService(Ci.nsIFocusManager)
				.getFocusedElementForWindow(content, true, {});
			var ed = box?.editor;
			if (!(ed && ed instanceof Ci.nsIEditor)) return;

			var txt = box.value;
			var s = box.selectionStart;
			var e = box.selectionEnd;

			var bef = txt.substring(0, s);
			var mid = dc ? "" : txt.substring(s, e);
			var aft = txt.substring(e);

			var ins = decodeURIComponent(bb1)
				.replace(/%copy%|%move%/, mid) + (move ? "" : mid) + decodeURIComponent(bb2);
			var val = bef + ins + aft;

			box.value = val;
			box.selectionStart = s;
			box.selectionEnd = s + ins.length;
			//box.focus();
		})(`
		var prfx = "data:charset=utf-8," + encodeURIComponent(code);
		return (this.url = (bb1, bb2, move, dc) => prfx
			+ `'${encodeURIComponent(bb1)}', '${encodeURIComponent(bb2)}', ${move}, ${dc});`
		)(...args);
	}
Выделить код

Код:

3.0.5.Test|Работает?|tag|%dclipboard%||data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAizUHRos1B42LNQfHizUH8Is1B/CLNQfHizUHjYs1B0YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLNQcgizUHjKlaMP7IiWj/3a+W/+a/qv/jt6D/26qQ/8iJaP+pWjD+izUHjIs1ByAAAAAAAAAAAAAAAACLNQcgnz0J88F7Vv/ho4T/4H5P/9VFEP/ne0X/5XE1/9ZFEv/jflD/4aWF/8F7Vv+cPQrzizUHIAAAAAAAAAAAizUHjMN6Vf/ilm//zEoT/8g1Cf/INQn///////jUwf/dMwr/3TMK/9dKF//UknL/wXtW/4s1B4wAAAAAizUHRqxaL/7kpIP/0EwS/8I6Df/DNAb/wzQG///////41MH/1zAG/9cwBv/XOBD/00kV/+Glhf+pWjD+izUHRos1B43Nimf/5Ylc/8A9Df/AOw3/wDUG/8A1Bv/yqIL/7pNi/9AvBP/QLwT/zzYN/802Dv/kh1v/yIlo/4s1B42LNQfH4qmL/9ZTGP/BPg//wDoN/741Bv++NQb///////318P/ILwL/yC8C/8c1C//FNQr/0EcP/96sk/+LNQfHizUH8Oy0l//ZViH/ykYX/8E9Df+8NAX/vDQF//fJsf//////+t/R/8AvAP+/NQn/vjUJ/8M5CP/pv6n/izUH8Is1B/Dwv6X/3Vom/9BOHv/IRRf/wzwL/8M8C//DPAv/+t/R///////1vqH/vDUJ/7w1Cf/AOQj/7Max/4s1B/CLNQfH6bGR/+JfIv/eXy3/5FEE/+lyM//nZyP/z0oa/89KGv/86uD//////+dnI/+4OAn/1F4o/+Owlf+LNQfHizUHjdWKZP/tjl//6m06/+yIU///////+NTB/9xaKf/cWin/+t/R///////pcjP/y0we/+eNYP/Pimb/izUHjYs1B0ayWy3+8aeB/+tlKf/kUQT//Org///////639H/+t/R///////41MH/11sq/9NdJv/ssJD/rlou/os1B0YAAAAAizUHjNN+Uf/ym2//7Got/+lyM//3ybH///////318P/1vqH/4mIu/+FiJv/xr4z/zn1S/4s1B4wAAAAAAAAAAIs1ByCqQAfz035R//Kogf/ylWT/7XpD//KDUf/yhlb/63M9//CYbP/yspH/0HxR/6Y+B/OLNQcgAAAAAAAAAAAAAAAAizUHIIs1B4yyWy3+2Ixk/+2yk//2w6j/9b2f/+yvjv/XjGT/slst/os1B4yLNQcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAizUHRos1B42LNQfHizUH8Is1B/CLNQfHizUHjYs1B0YAAAAAAAAAAAAAAAAAAAAA8A+sQcADrEGAAaxBgAGsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBgAGsQYABrEHAA6xB8A+sQQ==

Отсутствует

 

№973401-03-2021 21:39:53

harryk
Участник
 
Группа: Members
Зарегистрирован: 23-12-2019
Сообщений: 418
UA: Firefox 68.0

Re: Настройка внешнего вида Firefox в userChrome.css

Dumby пишет

Двойной энкодинг на закрывающий тэг делать не стал

Спасибо, так работает

Добавлено 01-03-2021 21:55:21

Dumby пишет

3.0.5.Test|Работает?|tag|%dclipboard%

Это тоже работает

Отредактировано harryk (01-03-2021 21:55:21)

Отсутствует

 

№973501-03-2021 22:10:29

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

harryk
Еще что-нибудь надо менять для тэга #, кроме замены https://forum.mozilla-russia.org/viewto … 72#p788872. Сделал и не вижу изменений - ткни, плиз носом

Отсутствует

 

№973601-03-2021 22:16:39

harryk
Участник
 
Группа: Members
Зарегистрирован: 23-12-2019
Сообщений: 418
UA: Firefox 68.0

Re: Настройка внешнего вида Firefox в userChrome.css

bezuma
Возьмите последние правки скрипта отсюда №9830

И сам тег

Выделить код

Код:

3.0.5.     #     |Скрытый текст|#|||data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHpSURBVHjapJK9aipRFEbXOc6MM5EkiIX5KaYShJQ+gpVtIF1Kq4Av4RuIZao0AUkTiAi+gEUgSipjNQYcizRJBowDZ2Z2ConFLW5yb1a3i734PvZWIvIKuPwfMSIST6dTCYJAvgiCQCaTyXYOw1Du7+8lSRL5g1gDMhwOub29ZbFYAGCMIY5jAJbLJYPBgKurK9I0JYoiZrPZVwKxADzPo9frMR6Pqdfr+L7PYrEgDEP6/T5hGFKr1Xh+fqbT6WCMoVqtcnFxgQb4+Pjg9PSUdrvNaDQijmMeHx+5ubmh2+1yfn6O4zhcXl6SJAknJyfc3d0xn883Aq01+/v72LaNZVmICGmakqYpjuNQKBRIkoT393dc18X3fc7OziiVShtBPp/Htm2UUhQKBQB836fRaNBqtbi+vsayLJrNJqvVislkQhRFuK6LEpF1FEWu1hrP83h7e8PzPIwx7O3t8fDwgOd5HB0dUSwWeXp64uXlhUqlwuHhYaxEZP2bP7AAVqsVy+USpRRKqW+30jRld3eXg4MDLID1ek0QBIgIWutvBcYYjo+PKZfLG4HWGsdxfixQSpHL5QDQ/BIL2N49y7Kt+W8kSUKWZVuByuVy7Ozs/LiCbds4jrNpIyKvWZa5xph/iq61xrbt+HMA/wYFcDfOeqsAAAAASUVORK5CYII=

Отредактировано harryk (01-03-2021 22:38:48)

Отсутствует

 

№973701-03-2021 23:00:45

bezuma
Участник
 
Группа: Members
Откуда: Москва
Зарегистрирован: 26-01-2014
Сообщений: 256
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

harryk
Спасибо, получилось, собссно я и клянчил сам тэг

Отсутствует

 

№973801-03-2021 23:02:36

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

Re: Настройка внешнего вида Firefox в userChrome.css

Dumby

но неужели хороший WebExtensions для этого не написали

Вообще никакой не написали, ни хороший, ни плохой. Единственный есть и тот через контекстное меню.
   

3.0.5.Test|Работает?

Да. Спасибо.
   
Не хватает выравнивания контента кнопок в меню по левому краю, с заданным отступом.
Пришлось пробелами выравнивать, без этого выглядит неопрятно, но пробелами точно выровнять не получится.

скрытый текст
ilwLoIq.jpg

Отредактировано _zt (01-03-2021 23:04:28)

Отсутствует

 

№973901-03-2021 23:18:10

harryk
Участник
 
Группа: Members
Зарегистрирован: 23-12-2019
Сообщений: 418
UA: Firefox 68.0

Re: Настройка внешнего вида Firefox в userChrome.css

bezuma пишет

клянчил сам тэг

Думаю придётся почти все кнопки переделывать под %dclipboard%, т.к дублировать команды, которые итак есть на странице смысла не вижу.
_zt
Как вы увеличили количество цветов в выпадающем списке? У меня всего 11

Отсутствует

 

№974001-03-2021 23:32:29

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

Re: Настройка внешнего вида Firefox в userChrome.css

harryk
0.7.6.position=after_start|height=455px
Так и другие меню можно сделать прокручивающимися.

Отредактировано _zt (01-03-2021 23:34:43)

Отсутствует

 

№974102-03-2021 00:08:35

harryk
Участник
 
Группа: Members
Зарегистрирован: 23-12-2019
Сообщений: 418
UA: Firefox 68.0

Re: Настройка внешнего вида Firefox в userChrome.css

_zt
Спасибо, получилось

Dumby
У меня ещё одна хотелка нарисовалась. Сделал я кнопку Моношрифт
3.0.9.Font Mono|Моношрифт|font|monospace||
в результате получаю такое

Выделить код

Код:

[font=monospace][/font]

Если заменить monospace на %dclipboard%, то получаю [font]Текст из буфера[/font]
Но мне же хочется чтобы было так

Выделить код

Код:

[font=monospace]Текст из буфера[/font]

Тогда я сделал так
3.0.9.Font Mono|Моношрифт|font|monospace|%dclipboard%|
но получил всё равно

Выделить код

Код:

[font=monospace][/font]

т.е. поле между последними вертикальными чертами игнорируется.
С этим можно что-то сделать?

Отредактировано harryk (02-03-2021 00:13:18)

Отсутствует

 

№974202-03-2021 08:46:02

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

Re: Настройка внешнего вида Firefox в userChrome.css

rubel пишет

кнопку // Искать в ...

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

Выделить код

Код:

(async (searchSelect, popup) => (popup = 
	searchSelect.closest("menupopup")).addEventListener("popupshowing", {

	topic: "browser-search-engine-modified",
	defaultImg: "chrome://browser/skin/search-engine-placeholder.png",
	handleEvent(e) {
		if (searchSelect.hidden) return;

		var menu = document.createXULElement("menu");
		menu.className = "menu-iconic";
		menu.ePopup = menu.appendChild(document.createXULElement("menupopup"));
		menu.onclick = this.search;
		searchSelect.collapsed = true;
		searchSelect.before(menu);

		addEventListener("unload", () => {
			popup.removeEventListener("popupshowing", this);
			this.handleEvent == this.handler &&
				Services.obs.removeObserver(this, this.topic);
		}, {once: true});

		this.handler = () => menu.hidden = searchSelect.hidden;
		this.handlerRebuild = () => this.handler() || this.rebuild(menu);
		this.rebuild(menu);
	},
	async rebuild(menu) {
		var de = Services.search.defaultEngine;
		de = de.wrappedJSObject || de;
		this.setAttrs(menu, de, `Искать в ${de.name} или в ...`);
		menu.ePopup.textContent = "";
		for(var engine of await Services.search.getVisibleEngines()) {
			if (engine == de) continue;
			var menuitem = document.createXULElement("menuitem");
			menuitem.className = "menuitem-iconic";
			this.setAttrs(menuitem, engine);
			menu.ePopup.append(menuitem);
		}
		this.handleEvent = this.handler;
		Services.obs.addObserver(this, this.topic, false);
	},
	setAttrs(node, engine, label = engine.name) {
		node.engine = engine;
		node.setAttribute("label", label);
		node.setAttribute("image", engine.iconURI ? engine.iconURI.spec : this.defaultImg);
	},
	observe() {
		this.handleEvent = this.handlerRebuild;
		Services.obs.removeObserver(this, this.topic);
	},
	search(e) {
		var {engine} = e.target;
		if (!engine) return;
		var submission = engine.getSubmission(
			searchSelect.searchTerms, null, "contextmenu"
		);
		submission && openLinkIn(submission.uri.spec, "tab", {
			postData: submission.postData,
			inBackground: e.button > 0,
			relatedToCurrent: true,
			triggeringPrincipal: searchSelect.principal
		});
		e.button != 1 && popup.state == "open" && popup.hidePopup();
	}
}))(document.getElementById("context-searchselect"));

_zt пишет

Не хватает выравнивания контента кнопок в меню по левому краю, с заданным отступом.

Если я правильно понял, тогда добавить перед строкой, содержащей
bbc.popup = this.lastChild.cloneNode(true);

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

Выделить код

Код:

...
		for(var hbox of this.lastChild.querySelectorAll(
			":not(#ucf-cbbtn-BBCode-node7) > button > hbox"
		)) {
			hbox.removeAttribute("pack");
			hbox.style.paddingLeft = "16px";
		}

harryk пишет

т.е. поле между последними вертикальными чертами игнорируется

Поле между последними вертикальными чертами — служебное.
Свободных полей только два (первое из них несёт имя тэга).

С этим можно что-то сделать?

Даже не знаю, кнопка изначально не расчитана на такие выкрутасы.
Могу попробовать ввести %+dclipboard%. Как бы чего-нибудь не испортить.

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

Выделить код

Код:

...
	async bbc(trg) {
		var v1 = trg.getAttribute("value1");
		if (!v1) return;

		var win = trg.ownerGlobal;
		var v2 = trg.getAttribute("value2");
		var dc = "", plus = false;
		if (v2) {
			var re = /%(\+)?(d)?clipboard%/;
			if (re.test(v2)) {
				var {$1, $2, leftContext} = RegExp;
				var cb = await win.navigator.clipboard.readText();
				if ($2) {
					if ($1) { // +dclip
						plus = true;
						var r = v2.slice(leftContext.length);
						v2 = "=" + leftContext;
						dc = r.replace(re, cb);
					}
					else { // dclip
						dc = v2.replace(re, cb);
						v2 = false;
					}
				}
				// clip
				else if (!$1) v2 = "=" + v2.replace(re, cb);
			}
			else v2 = "=" + v2;
		}
		win.gBrowser.selectedBrowser.messageManager.loadFrameScript(this.url(
			encodeURIComponent(`[${v1 + (v2 || "")}]${dc}`), encodeURIComponent(`[/${v1}]`),
			v2 == "=%move%", v2 === false || plus
		), false);
	},
Выделить код

Код:

3.0.9.Font Mono|Моношрифт|font|monospace%+dclipboard%||data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP///////////9eDAP/XgwD/14MA/9eDAP/XgwD/14MA////////////14MA/9eDAP/XgwD/14MA/9eDAP/XgwD////////////XgwD/14MA/9eDAP/XgwD/14MA/9eDAP///////////9eDAP/XgwD/14MA/9eDAP/XgwD/14MA////////////14MA/9eDAP///////////9eDAP/XgwD////////////XgwD/14MA/9eDAP/XgwD/14MA/9eDAP///////////9eDAP/XgwD////////////XgwD/14MA////////////14MA/9eDAP/XgwD/14MA/9eDAP/XgwD////////////XgwD/14MA////////////14MA/9eDAP///////////9eDAP/XgwD/14MA/9eDAP/XgwD/14MA////////////14MA///////////////////////XgwD////////////XgwD/14MA/9eDAP/XgwD/14MA/9eDAP//////////////////////////////////////////////////////14MA/9eDAP/XgwD/14MA/9eDAP/XgwD//////////////////////9eDAP/XgwD//////////////////////9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/////////////////9eDAP/XgwD/14MA/9eDAP/////////////////XgwD/14MA/9eDAP/XgwD/14MA/9eDAP///////////9eDAP/XgwD/14MA/9eDAP/XgwD/14MA////////////14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/14MA/9eDAP/XgwD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==

Отсутствует

 

№974302-03-2021 10:39:55

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 570
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

Dumby
Спасибо Вам за отличную работу кнопку-меню // Искать в ... :) :beer:

Отсутствует

 

№974402-03-2021 10:48:19

harryk
Участник
 
Группа: Members
Зарегистрирован: 23-12-2019
Сообщений: 418
UA: Firefox 68.0

Re: Настройка внешнего вида Firefox в userChrome.css

Dumby пишет

Могу попробовать ввести %+dclipboard%

Работает, спасибо. С отступами тоже всё стало лучше.

Отсутствует

 

№974502-03-2021 12:51:18

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

Re: Настройка внешнего вида Firefox в userChrome.css

Vitaliy V.

Vitaliy V. пишет

вот например для боковой панели
SidebarBookmarkSearchOpenFolder.uc.js
если надо то есть способ подключить его в user_chrome_files

А как это сделать?


И еще вопрос.
Я пользуюсь расширением Open side view. При выборк соответствующего пункта
контекстного меню ссылки или закладки автоматически открывалась боковушка
с этим сайтом. Начиная с Firefox 86 придится наводить указатель мыши на вертикальную
панель, чтобы боковушка открылась. Не подскажете в чем здесь дело?

Отредактировано Garalf (02-03-2021 13:09:44)

Отсутствует

 

№974602-03-2021 12:59:08

harryk
Участник
 
Группа: Members
Зарегистрирован: 23-12-2019
Сообщений: 418
UA: Firefox 68.0

Re: Настройка внешнего вида Firefox в userChrome.css

rubel пишет

Спасибо Вам за отличную работу кнопку-меню // Искать в

Не понял - что куда ложить и как подключать?

Отсутствует

 

№974702-03-2021 13:36:56

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1224
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

rubel
Кнопка // Искать в ... уже была, Вы невнимательны. Зато теперь их целых две! :)
https://forum.mozilla-russia.org/viewtopic.php?pid=780283#p780283
Garalf

Garalf пишет

А как это сделать?

Код берём здесь и вставляем в custom_script_win.js. У меня так работает: раскомментарил

Выделить код

Код:

browser: win => {
                    //>>>>>>>>>>| Этот блок требуется для боковой панели и др., очистите строку ниже если он нужен |>>>>>>>>>>
                    /*

и вставил

Выделить код

Код:

//>>>>>>>>>>| Загрузка скриптов для др. документов |>>>>>>>>>> https://forum.mozilla-russia.org/viewtopic.php?pid=788301#p788301
                "chrome://browser/content/places/bookmarksSidebar.xhtml": win => {
                    // боковая панель закладок
                    loadscript("cs_win/SidebarBookmarkSearchOpenFolder.uc.js", win);
                },
            //<<<<<<<<<<<<<<<<<<<<

скрипт SidebarBookmarkSearchOpenFolder.uc.js

Выделить код

Код:

// ==UserScript==
// @charset        UTF-8
// @name           SidebarBookmarkSearchOpenFolder.uc.js
// @description    ブックマークサイドバーで検索したブックマークのコンテキストメニューに[このブックマークがあるフォルダを開く]を追加します
// @include        chrome://browser/content/places/bookmarksSidebar.xhtml
// @include        chrome://browser/content/places/bookmarksSidebar.xul
// @version       2019/12/11 fix for 73 Bug 1601094 - Rename remaining .xul files to .xhtml in browser
// @version        2019/01/22
// ==/UserScript==
(function() {
	"use strict";
	const SidebarBookmarkSearchOpenFolder = {
		tree: null,
		searchbox: null,
		menuitem: null,
		separator: null,
	
		init: function() {
			this.tree = document.getElementById("bookmarks-view");
			this.searchbox = document.getElementById("search-box");
			const popup = document.getElementById("placesContext");
			if (!this.tree || !this.searchbox || !popup)
				return;
	
			const insertPos = popup.firstChild;
	
			this.menuitem = this.$C("menuitem", {
				id: "ucjs_openFolderWithThisBookmark",
				label: "Открыть папку с закладкой", //このブックマークがあるフォルダを開く
			}, popup, insertPos);
			this.menuitem.addEventListener("command", this);
	
			this.separator = this.$C("menuseparator", null, popup, insertPos);
	
			this.tree.addEventListener("contextmenu", this);
		},
	
		handleEvent: function(event) {
			switch (event.type) {
			case "contextmenu":
				this.onContextmenu(event);
				break;
			case "command":
				this.onCommand(event);
				break;
			}
		},
	
		onContextmenu: function(event) {
			if (this.searchbox.value !== "") {
				this.menuitem.removeAttribute("hidden");
				this.menuitem.removeAttribute("disabled");
				this.separator.removeAttribute("hidden");
				this.separator.removeAttribute("disabled");
			} else {
				this.menuitem.setAttribute("hidden", true);
				this.separator.setAttribute("hidden", true);
			}
		},
	
		onCommand: function(event) {
			const node = this.tree.selectedNode;
			if (node && node.itemId >= 0) {
				// 検索クリア
				/*this.tree.place = this.tree.place;
				this.searchbox.reset();
				searchBookmarks("");*/
				this.searchbox._clearSearch();

				// ツリーから対象idのノードを探す
				const target = this.findNode(this.tree.view.result.root, node.itemId);
				if (target) {
					setTimeout(() => {
						const tree = this.tree;
						tree.selectNode(target);

						// スクロール位置調整
						const box = tree.treeBoxObject || tree;	// tree.treeBoxObjext: -65, tree: 66-
						const last = box.getLastVisibleRow();
						if (last - 3 <= tree.currentIndex) {
							box.scrollByLines((last - box.getFirstVisibleRow()) / 4);
						}
					}, 0);
				}
			}
		},
	
		findNode: function(node, id) {
			function _find_recursive(node) {
				if (node.itemId === id)
					return node;
	
				if (PlacesUtils.nodeIsContainer(node)) {
					const prevOpen = node.containerOpen;
					node.containerOpen = true;
					try {
						for (let i = 0;  i < node.childCount; i++) {
							const childNode = node.getChild(i);
							if (!PlacesUtils.nodeIsQuery(childNode)) {
								const found = _find_recursive(childNode);
								if (found)
									return found;
							}
						}
					}
					finally {
						node.containerOpen = prevOpen;
					}
				}
				return null;
			}
			return _find_recursive(node);
		},
	
		$C: function(tag, attr, parent, before) {
			const e = document.createXULElement(tag);
			if (attr) Object.keys(attr).forEach(k => e.setAttribute(k, attr[k]));
			if (parent) parent.insertBefore(e, before);
			return e;
		}
	};
	
	SidebarBookmarkSearchOpenFolder.init();
})();

Отсутствует

 

№974802-03-2021 13:41:41

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 570
UA: Firefox 86.0

Re: Настройка внешнего вида Firefox в userChrome.css

harryk

Не понял - что куда ложить и как подключать?

С Кодом, который дал Dumby под первым спойлером нужно создать файл context-searchselect.js
и подключить его к custom_script_win.js.

Добавлено 02-03-2021 13:45:13
xrun1

Кнопка // Искать в ... уже была, Вы невнимательны. Зато теперь их целых две! :)
https://forum.mozilla-russia.org/viewtopic.php?pid=780283#p780283

Там все заморочено, а здесь сразу все получается. :)

Отредактировано rubel (02-03-2021 13:45:13)

Отсутствует

 

№974902-03-2021 14:20:13

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

Re: Настройка внешнего вида Firefox в userChrome.css

xrun1
А для кнопки // Искать в ... сделать по аналогии?

Отсутствует

 

№975002-03-2021 14:20:59

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

Re: Настройка внешнего вида Firefox в userChrome.css

Dumby

Если я правильно понял

Да, все верно. Спасибо, работает, так намного лучше.
   
Подскажите, как добавить еще пару кнопок на панель?
Например, для операций с буфером и для редких тегов. Что бы без прокрутки в менюшках можно было обойтись.
Последовательное увеличение цифр, в секции кнопок панели, кнопку создает, но меню такая кнопка не вызывает.

Отредактировано _zt (02-03-2021 14:51:12)

Отсутствует

 

Board footer

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