Files
webextensions-examples/menu-labelled-open/background.js
wbamberg 67e7cfa1f0 Add an example for menus.onShown and menus.refresh() (#343)
* Add an example for menus.onShown and menus.refresh()

* Add version

* Remove unusued variable; use strict
2018-02-28 16:49:04 -08:00

34 lines
698 B
JavaScript

'use strict';
const openLabelledId = "open-labelled";
browser.menus.create({
id: openLabelledId,
title: "Open",
contexts: ["link"]
});
browser.menus.onClicked.addListener((info, tab) => {
if (info.menuItemId === openLabelledId) {
browser.tabs.update(tab.id, {
url: info.linkUrl
});
}
});
async function updateMenuItem(linkHostname) {
await browser.menus.update(openLabelledId, {
title: `Open (${linkHostname})`
});
await browser.menus.refresh();
}
browser.menus.onShown.addListener(info => {
if (!info.linkUrl) {
return;
}
let linkElement = document.createElement("a");
linkElement.href = info.linkUrl;
updateMenuItem(linkElement.hostname);
});