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

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

№104-01-2025 12:12:05

austri
Участник
 
Группа: Members
Зарегистрирован: 20-01-2009
Сообщений: 167
UA: Firefox 102.0

добавление пунктов в главное контекстное меню

(ff 40.0.2) какие две строчки нужно добавить? (в файл click.js),
чтобы в главной контекстной менюшке появились 2 пунктa: history, home


файл click.js находится внутри xpi-файла: chrome\content\click\click.js


xpi-файл соответствует одному из двух имеющихся расширений, и находится этот файл вот здесь:
Data\profile\extensions\{dc572301-7619-498c-a57d-39143191b318}.xpi
 
 
безуспешно перепробованы десятки вариантов;
по сути, во всех случаях просто ничего в менюшке не появляется, и только вот в этом случаe...

Выделить код

Код:

"placesContext_open": { lab: "history" },

...появляется серый пункт (неактивный) (то есть, всё равно не работающий)

 
history/library нужен обычный (не внутри таба) (то есть, как если бы было нажато ctrl+shift+h)
 
 
вот несколько примеров работающих строчек (в этом файле click.js):

 
1) (по нажатию на ctrl+d) home работает:

Выделить код

Код:

var keys = {  
goHome: { key: "D", modifiers: "control" },
...
key_close: { key: "w", modifiers: "control" },
...
showAllHistoryKb: true,
};

а нужно, чтобы home появился в главной контекстной менюшке
 
 
2)

Выделить код

Код:

setTimeout((n, css) => {
	var data = {
"tm-tabsList": { lab: "opened" },
"tm-content-undoCloseList": { lab: "closed" },
"menuitem_inspector": { lab: "inspector", ctrl: true },
"menu_openAddons": { lab: "extensions", ctrl: true },
"menu_newNavigatorTab": { lab: "new" },
"menu_close": { lab: "close" },
"menu_preferences": { lab: "options" },
"context-copylink": { lab: "copy address" },
...
"context-viewinfo": { lab: "information", ctrl: true },
"menu_browserConsole": { lab: "console", ctrl: true },
"context-undo": { lab: "un-do" },
"context-paste": { lab: "paste" },
"context-delete": { lab: "delete" },
"context-copy": { lab: "copy", ctrl: true },
	};

Отсутствует

 

№205-01-2025 11:20:35

austri
Участник
 
Группа: Members
Зарегистрирован: 20-01-2009
Сообщений: 167
UA: Firefox 102.0

Re: добавление пунктов в главное контекстное меню

у меня "home" означает "about:blank", и вот таким обходным вариантом...

Выделить код

Код:

(menuitem => {
          menuitem.id = "my-about-blank";
 menuitem.setAttribute("label", "home");
 menuitem.setAttribute("oncommand", 'loadURI("about:blank");');
 document.getElementById("contentAreaContextMenu").appendChild(menuitem);
})(document.createElement("menuitem"));
Выделить код

Код:

setTimeout((n, css) => {
 var data = {
...
"my-about-blank": {  },
...
 };

...мне удалось добавить пункт "home" в главное контекстное меню, и он работает,
но не совсем так, как нужно:
 
- при этом варианте (после нажатия на данный пункт) проставляется курсор в строке адреса (которая только что стала пустой)
- а нужно, чтобы было как при нажатии на вчера упомянутoe ctrl+d (то есть, никакого подобного авто-проставления курсора)
 
 
 
основной вопрос: как добавить в главное контекстное меню пункт "history"?,
по клику на который просто бы нажималось Ctrl+Shift+H,

и добавить так, чтобы он разместился между вчера упомянутыми пунктами "close" и "options":

Выделить код

Код:

"menu_close": { lab: "close" },
"menu_preferences": { lab: "options" },

Отсутствует

 

№305-01-2025 15:24:46

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

Re: добавление пунктов в главное контекстное меню

austri пишет

нужно, чтобы было как при нажатии на вчера упомянутoe ctrl+d

Почему тогда 'loadURI("about:blank");' а не "BrowserHome();"

как добавить в главное контекстное меню пункт "history"?

Может menu_showAllHistory: { lab: "history" },

Отсутствует

 

№405-01-2025 15:55:58

austri
Участник
 
Группа: Members
Зарегистрирован: 20-01-2009
Сообщений: 167
UA: Firefox 102.0

Re: добавление пунктов в главное контекстное меню

Dumby, оба пункта заработали, спасибо


Может menu_showAllHistory: { lab: "history" },

могу ли по такому же простому принципу сделать и для home?
например, вот это не сработало:

Выделить код

Код:

menu_BrowserHome: { lab: "home-test" },

(уточняю на всякий случай:
откуда вообще выяснять все эти menu_showAllHistory?, и тому подобные)

Отредактировано austri (05-01-2025 15:58:54)

Отсутствует

 

№5Вчера 10:16:30

austri
Участник
 
Группа: Members
Зарегистрирован: 20-01-2009
Сообщений: 167
UA: Firefox 102.0

Re: добавление пунктов в главное контекстное меню

по такому же простому принципу сделать и для home

подскажите, пожалуйста, не только по поводу строчки для home, но и для таких строчек как:


- find              (то есть, как если бы было нажато ctrl + f)
- back            (то есть, как если бы было нажато backspace)
- forward       (то есть, как если бы было нажато shift + backspace)

Отсутствует

 

№6Вчера 21:08:48

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

Re: добавление пунктов в главное контекстное меню

могу ли по такому же простому принципу сделать и для home?

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


Можно изменить, чтобы создавал.
Заменить цикл for(var id in data) {…} на такой

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

Выделить код

Код:

//
	for(var id in data) {
		var obj = data[id], elm = n(id);
		(obj.ctrl ? ctrlIds : ids).push("#" + id);

		if (elm) {
			remAttrs(elm);
			var br, obs = elm.getAttribute("observes");
			if (obs) br = n(obs), br && remAttrs(br);
		}
		else
			(elm = document.createElement("menuitem")).id = id;

		if ("lab" in obj)
			br && br.removeAttribute("label"),
			elm.setAttribute("label", obj.lab);

		obj.oncommand && elm.setAttribute("oncommand", obj.oncommand);

		df.appendChild(elm);
	}


Тогда можно написать что-то типа
"created-home": { lab: "home", oncommand: "BrowserHome();" },

откуда вообще выяснять все эти menu_showAllHistory?, и тому подобные

Какой-то слишком общий вопрос.
Можно, например, запустить
с консоли браузера Attributes Inspector (raw), и посмотреть.


А насчёт find, back, forward,
find — можно из пункта «Правка» главного меню притащить.


А back и forward — есть в «главном контекстном»,
только они у него в menugroup#context-navigation


menu_find: { lab: "find" },
"context-back": { lab: "back" },
"context-forward": { lab: "forward" },

Отсутствует

 

№7Вчера 22:03:49

austri
Участник
 
Группа: Members
Зарегистрирован: 20-01-2009
Сообщений: 167
UA: Firefox 102.0

Re: добавление пунктов в главное контекстное меню

Dumby, спасибо вам за помощь

Отсутствует

 

Board footer

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