dllweb
@dllweb

Дублирование контекстного меню, где инициализировать меню в расширении?

Доброго времени суток.
Уважаемые, столкнулся со следующей проблемой при создании расширения под Chrome.
Суть проблемы, не знаю где разместить код инициализирующий создание контекстного меню
chrome.contextMenus.create({
	    "title": "Сохранить",
	    "contexts": ["image"],
	    "onclick" : function(OnclickData, tab){
	    				var current = localStorage.active;
						var url_pic = OnclickData.srcUrl;
						var sendData = { "group_id": current, "src_link": url_pic };
					}
	  });

Размещаю его в background.js который и является по сути background в расширении.

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

e87dd6307ac947ae9b8b1c7a3892e0e7.png

Подскажите пожалуйста, где запускать создание контекстного меню?
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
@OVK2015
У меня вот так сделано в background.js:
var rootItem, translateItem;

function createContextMenu()
{
....
rootItem = chrome.contextMenus.create
		(
			{
				id: "utilsExtRootMenuItem",
				title: "Утилиты",
				contexts: ["all"]
			}, 
			function(){}
		);

translateItem = chrome.contextMenus.create
		(
			{
				id: "utilsExtTranslateMenuItem",
				parentId: rootItem,
				title: "Перевести...",
				contexts: ["all"],
				onclick: translateWithWordReference
			}, 
			function(){}
		);	
....
}
function translateWithWordReference()
{
....
}
createContextMenu();

Все работает как надо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы