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

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

№115-01-2022 12:07:44

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1160
UA: Firefox 96.0

userChrome.js

Dumby
Здравия! Сделайте пожалуйста что бы этот скрипт: https://forum.mozilla-russia.org/viewto … 03#p776503 работал в актуальных версиях [firefox] !


P,S, и только для открытия истории из журнала и боковой панели в новой вкладке.


Win7

Отсутствует

 

№215-01-2022 21:01:13

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

Re: userChrome.js

kokoss
У меня нет userChrome.js, нужно железное обоснование (и ссылка),
почему именно userChrome.js, ведь у тебя есть UCF.


Недавно же sandro79 обращал наше внимание на то,
что в 96 отвалился ucf_wheretoopenlink.js. А отвалился он потому,
что Bug 1742801 «move whereToOpenLink and getRootEvent implementations into BrowserUtils».


Я тогда попытался набросать новый вариант, и вот теперь уже,
переделать под только Журнал (боковушка ведь тоже озаглавлена как Журнал).
Так что, если хочешь, попробуй (это в custom_script.js).

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

Выделить код

Код:

(async sel => {
	var trees = ["places", "historySidebar"];
	var url = "resource://gre/modules/BrowserUtils.jsm";
	var bu = ChromeUtils.import(url).BrowserUtils, {whereToOpenLink} = bu;

	bu.whereToOpenLink = function(e) {
		var res = whereToOpenLink.apply(bu, arguments);
		if (res != "current" || !Event.isInstance(e)) return res;
		try {
			var skip = true, trg = e.composedTarget, win = trg.ownerGlobal;
			var name = win.document.documentURIObject
				.QueryInterface(Ci.nsIURL).fileName.slice(0, -6);

			if (name == "browser")
				skip = win.gBrowser.selectedTab.isEmpty || !trg.closest(sel);

			else if (trees.includes(name))
				skip = (win.opener || win.windowRoot.ownerGlobal).gBrowser.selectedTab.isEmpty
					|| trg.closest("tree").selectedNode.itemId != -1;

			return skip ? res : "tab";
		}
		catch {return res;}
	}
})("#historyMenuPopup,#PanelUI-history");

Отсутствует

 

№315-01-2022 21:40:41

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1160
UA: Firefox 96.0

Re: userChrome.js

Dumby
Класс, при чём работает и в старой версии UCF!!! Благодарю 61e02079e5fa.gif


Add, всё же придётся перейти на актуальную версию UCF, в ней этот скрипт работает правильно!

Отредактировано kokoss (16-01-2022 01:20:37)


Win7

Отсутствует

 

№4Вчера 01:38:50

sandro79
Участник
 
Группа: Members
Откуда: Ставрополье
Зарегистрирован: 15-11-2017
Сообщений: 1572
UA: Firefox 91.0

Re: userChrome.js

Dumby пишет

Так что, если хочешь, попробуй (это в custom_script.js)

Благодарю за замену для ucf_wheretoopenlink.js для 96+
Работает по журналу отлично: с окна библиотеки, с боковой панели, с меню бутерброда, с вкладки chrome://browser/content/places/places.xhtml, в общем везде где есть журнал.
Работает как с user_chrome_files, так и с этим комплектом - одинаково, что меня очень обрадовало. Надо будет ещё с этим комплектом потестить.
Dumby, ну сделайте пожалуйста подобный компактный (873 байт) скрипт для версий [firefox] < 96. По идее должен будет наверно и в 78 работать.
И огромноая благодарность Вам за кнопку «вывести на кнопку индикацию muted-состояния активной вкладки» Тоже забрал на замену, работает отлично!

Отсутствует

 

№5Вчера 21:06:48

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

Re: userChrome.js

sandro79 пишет

Работает как с user_chrome_files, так и с этим комплектом - одинаково, что меня очень обрадовало.

А меня это огорчает. Сколько раз было сказано,
что коды для для custom_script.js не следует совать в окна.
Но, видимо, это слишком сложная мысль.
Я даже не понимаю зачем это может понадобиться,
какой-то поиск приключений браузеру на ...

подобный компактный (873 байт) скрипт для версий [firefox] < 96

Кстати, в скрипте есть баг: в Библиотеке, в закладках,
в новой вкладке также открывается добро исторических кверей,
типа «Двадцать часто посещаемых», а это не есть Журнал.


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


Код для custom_script_win.js (вот его можно во всяких там комплектах проверять).
Набирал из-под 77, в 98 вроде тоже работает.

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

Выделить код

Код:

(async sel => {
	var wtol = whereToOpenLink;
	whereToOpenLink = function whereToOpenLink(e) {
		var res = wtol.apply(window, arguments);
		return res == "current" && !gBrowser.selectedTab.isEmpty &&
			Event.isInstance(e) && e.composedTarget.closest(sel) ? "tab" : res;
	}
	var puu = PlacesUIUtils, key = "openNodeWithEvent";
	if (puu[key].name.startsWith("b")) return;

	var bt = Object.create(puu), bwt = BrowserWindowTracker;
	bt._openNodeIn = (node, where, win) => {
		if (where == "current" && node.itemId == -1 &&
			!(win.opener || bwt.getTopWindow()).gBrowser.selectedTab.isEmpty
		)
			where = "tab";
		puu._openNodeIn(node, where, win);
	}
	puu[key] = puu[key].bind(bt);
})("#goPopup,#historyMenuPopup,#PanelUI-history");

Отсутствует

 

№6Вчера 22:07:18

sandro79
Участник
 
Группа: Members
Откуда: Ставрополье
Зарегистрирован: 15-11-2017
Сообщений: 1572
UA: Firefox 91.0

Re: userChrome.js

Dumby пишет

А меня это огорчает. Сколько раз было сказано, что коды для для custom_script.js не следует совать в окна

Да, это я припоминаю, но как запасной вариант что ли, так то вроде нормально работает в классических комплектах, ну навскидку. Впредь буду осмотрительней.

типа «Двадцать часто посещаемых», а это не есть Журнал

Да это не страшно, мелочи, пусть как фича будет.

Код для custom_script_win.js (вот его можно во всяких там комплектах проверять)

Скрипт подключал в custom_script_win.js в 69 и 78, в 91 и 98 в CustomStylesScripts.jsm в scriptschrome: { // Для докум. окна браузера [ChromeOnly]
Везде всё проверил, вроде всё как надо, работает везде по журналу, ну по мне - получилось отлично.
В основном использую журнал из автоскрываемой боковой панели, с журнала панели меню и значка в виде часов, размещённого на панели меню.
Огромное Спасибо! :beer:

Отсутствует

 

Board footer

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