階層を1つ上に上がるGo Upを右クリックメニューに追加する
階層を1つ上に上がるボタンの拡張機能 "Go Up" を userChrome.js を使って右クリックメニューに追加するコードです。
(function() { const GoUpMenu = { init: function() { var urlbar = document.getElementById('urlbar'); }, menuClicked: function(e) { var up = this.getUp(_content.document.location.href); openUILink(up, e); }, getUp: function(url) { var matches, origUrl = url; matches = url.match(/(^.*\/)(.*)/); if(!matches) { return null; } url = matches[1]; if(url != origUrl && !/(index|main)\.(php3?|html?)/i.test(url)) { return url; } matches = url.match(/^([^\/]*?:\/\/.*\/)[^\/]+?\//); if(matches) { return matches[1]; } matches = url.match(/([^:]*:\/\/)?(.*)/); var protocol = matches[1], domain = matches[2]; matches = domain.match(/^[^\.]*\.(.*)/); if(matches) { return (protocol + matches[1]); } return null; } }; window.addEventListener('load', function() { GoUpMenu.init; }, false); var contextmenu = document.getElementById('contentAreaContextMenu'); var menuitem = document.createElement('menuitem'); menuitem.setAttribute('id', 'context-goupmenu'); menuitem.setAttribute('label', 'Go Up'); menuitem.addEventListener('command', function(e) { GoUpMenu.menuClicked(e); }, false); contextmenu.insertBefore(menuitem, document.getElementById('context-stop').nextSibling); contextmenu.addEventListener('popupshowing',function() { var cm = gContextMenu; menuitem.hidden = (cm.isTextSelected || cm.onLink || cm.onImage || cm.onTextInput); }, false); })();