Files
webextensions-examples/menu-labelled-open/background.js
2018-03-08 08:02:05 -08:00

34 lines
680 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
});
}
});
function updateMenuItem(linkHostname) {
browser.menus.update(openLabelledId, {
title: `Open (${linkHostname})`
});
browser.menus.refresh();
}
browser.menus.onShown.addListener(info => {
if (!info.linkUrl) {
return;
}
let linkElement = document.createElement("a");
linkElement.href = info.linkUrl;
updateMenuItem(linkElement.hostname);
});