Ich habe OpenUrlWith wohl hinbekommen: nicht nur "Link", sondern auch "Seite" sollte wieder gehen (s. Github)
Danke dafür.
Kannst Du dir das thematisch ähnliche ViewInOtherBrowser ansehen? Man muss dort nur 2x nsiLocalFile durch nsiFile ersetzen, in der aktuellen Skriptversion in den Zeilen 73 und 90.
Nachtrag:
Man kann doch OpenUrlWith sicherlich noch kürzen/vereinfachen, indem man die sich wiederholenden Funktionsaufrufe in Variablen auslagert. Der Hintergedanke ist, dass damit eine Erweiterung für einen weiteren Browser eventuell weniger fehleranfällig ist. Um das Skript in der aktuellen Version zu verwenden (Edit: OK – nach längerem Ausprobieren –, so geht es jedenfalls nicht
// Pfade anpassen und bei Bedarf weitere Konstante mit eindeutigem Namen ergänzen
const FIREFOX_PATH = C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"";
/* weitere Pfadeinträge */
/* (hier Variablen ergänzt:) */
// Nicht verändern
var getLinkURL = get url() { return gContextMenu.linkURL; },
getShouldDisplayLink = get shouldDisplay() { return gContextMenu.onLink; },
getPageURL = get url() { return gBrowser.currentURI.spec; },
getFrameURL = get url() { return document.commandDispatcher.focusedWindow.location.href; },
getShouldDisplayFrame = get shouldDisplay() { return gContextMenu.inFrame; };
// Bei Bedarf erweitern
var mMenus = [
{
label: "Firefox (Link)",
accesskey: "F",
application: FIREFOX_PATH,
getLinkURL,
getShouldDisplayLink
},
/* usw. */
{
label: "-",
getShouldDisplayLink
},
{
label: "Firefox (Seite)",
accesskey: "F",
application: FIREFOX_PATH,
getPageURL,// Ist das Komma kein Fehler?
},
/* usw. */
{
label: "-",
getShouldDisplayFrame
},
{
label: "Firefox",
accesskey: "F",
application: FIREFOX_PATH,
getFrameURL,
getShouldDisplayFrame
},
/* usw. */
Alles anzeigen
Ob die Variablen so bezeichnet werden können (irreführend oder Name schon reserviert), weiß ich nicht. Bei „Browser (Seite)“ befindet sich jedes Mal ein Komma vor der schließenden Klammer, ist das kein Fehler? (Selbstanwort als Nachtrag: Kein Fehler.)