- Firefox-Version
- 136.0a1
- Betriebssystem
- Win11 24H2
Dieses Skript funktioniert nicht mehr in v136.0a1 Nightly
JavaScript
// ==UserScript==
// @name OpenWith.uc.js
// @description 用其他浏览器打开页面、链接、书签及标签
// @author ding
// @include main
// @version 2018.2.3.1
// @homepageURL https://bbs.kafan.cn/thread-2114879-1-1.html
// @startup window.OpenWithManager.init();
// @shutdown window.OpenWithManager.destroy();
// @note 适配Firefox57+
// ==/UserScript==
location.href.startsWith('chrome://browser/content/browser.x') && (function () {
const MENU_NAME = "用其它浏览器打开";
//是否使用二级菜单
const USE_MENU_AREA = true; //页面
const USE_MENU_TAB = false; //标签
const USE_MENU_PLACE = false; //书签
function getFirefoxPath(){//firefox.exe所在路径
return OS.Constants.Path.libDir;
}
function getRootPath() {//firefox所在盘路径
var path = getFirefoxPath();
var index = path.indexOf(":");
return path.substring(0,index+1);
}
//修改内容后请将脚本改名来保证加载的是最新,或使用无缓存的userChrome.js
var browsers = {
Edge: {
enable: true,
name: "Edge",
path: "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe",
image: "data:image/png;base64,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"
},
Chrome: {
enable: true,
name: "Chrome",
path: "D:\\GoogleChromePortable64\\GoogleChromePortable.exe",
image: "data:image/png;base64,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"
},
Slimjet: {
enable: true,
name: "Slimjet",
path: "D:\\Slimjet\\slimjet.exe",
image: "data:image/png;base64,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"
},
FireFox: {
enable: true,
name: "Firefox Nightly",
path: "D:\\FirefoxNightly\\FirefoxPortable.exe",
image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAE5ElEQVRIx8WVW4hd5RXHf+vb93Oby5nO5FJlopKQ4qVSpQk+zB4otZVWBUHwTQRHEAVBCvWlM2OhUOhLoX2RFiuBgnlKKfUChTkVSm2tU1p0hIxOLibGZDKZOefsfc6+fd/Xh2OGBFuVltIFH+y1H9Zv/9f69n/BfxFPbP4s5n8Z7Y1nrZz8/mdC5IsUum/h+NIrb22CXx8dN2LPc725iwdW40A89roH5k/NLnQ+F3Dih0l87oyNn/pFcwkgOviDJe0GiwUehE3wGxA0IRpDPX8BO74GgCsh1dsPd77T2rv82/ua14Gca5O79z394o6XPfrlO47IpezwSpKXcTg5zYFvzOFMj5FeSsCLwA/hXo0VDTbCWAMz67Mfps3Z6tgLL/1bBc99833rReMM2y3SGThjr6BunuJ87xyrv34dwvFRi6ImzvMNdLQKVIC7W+P24q7lf9x559LVXF19+PPP83hfuY9a1MYJXUzg0JqZQQcOG385CaYCXYA1YAxyuYaUN4BtgA3BNMA0WHNPLz6zcTb+FGDjhLPoeBFGgfnkg7QDRkFwx1GmHvk2k/ffBjqHKsf8/jJ+MYtrG2BdsC5iQ7QOODG8sHgd4PXHirjqqxjACqAs1hn1zwiI69C8+UbGboygzKAYYN7uYlYHBMmteGYMMXVE1xA8zpbmegW9dXZfiB1VFT3K3QrGVcLmseOc+vErUA6gSKFIKY+to9/s0+reTrP6EqgmYiaQssb03z5Y2gU09tk5AEcsyoCqQGkwSYoZZBTv/Z3k3XXQ5ScKEij6UA3JX36L9GKdsL+fMN2DlC3EROy/YOa4On6bEysskgvKgKOFjdNrdMOStReOUwU+VNVIktGjQZcZKBerS6qts/QHB2nfNKDv9EkpuNy18S7Ac8yoHVpwCyiHORJETLRmGJ/ay/bFj/AVVGWOqYrRbRIHlANG4+oulR9gtyva/hjF2A7SHP1iLsDwvFp2sYu6snj5CDIdTaH9kCMPLrD+zgrbvSv4X5mlaIZcevOvpCfPQ6lRtiJqNrETMEhrtMmYSEL2RnD2KiCYMJTbispaggwmagGFdsgKRR4Kh77+LQZNGNagGxaE4zVOvfsrjAhSd5g8eJhhagGIcqFdKFJXlncVtI+WneJVtVhZIciFYAiTgUviWrYG2+TnN9F1h+2dM1z40xvkSUZDORhdMfnw/TQyD7VjQStqmeAoj3umTeeda63itbnBSpp78QCHPID+uJC0IGlZVtd+w+mTf0RZhwILIpjIZ+Kh79I6cheVGIrS4hQw0xcilXZeXhib51oT8Rvlsi6cuLKCFIIdgBXBivC1ww9wy23zXNp6n0QPoT1G7dAhTM3HbkMpCmMhGli8riY7N/zDvzS7lQd7K/2PgzjFpRQhb0CvIQzrMKxDFlqKuqUIRnaS+QqrQItFtCUcCnma8dVb9Pz3Hh/Z9qcWzqv39FYyHcYZDqUIRc2S1BR5bTTkIoAyMhSuYF2LVmCt4GiIlMGImf/Jj/zOZ2603917ZaXsNuIcRYGi9KCKIKkJZQCFD8aByht5lzGaoJ51Fn/amP/CK/PE0X7sNNXKoBdgEEoRSg9MYMlcReVDX4ZsD7YYv6HbWfzlrfP/0U5+bWFzSffqc1lCnO/46EpBZAj3aC5v+st2/1bnyZemOvy/4p94BjsVGJyURAAAAABJRU5ErkJggg=="
},
others: {
enable: false,
name: "",
path: "",
image: ""
},
all: {
enable: true,
name: "所有浏览器",
image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACjElEQVQ4T21TXUgUURT+zswuZZruTBRRFJHOvgRR0EMRCQkVQWUEai9WD+LWjtpDQfVQLRQYPUSFd0xSCMJ+pCIMC1+rh+itzMC964MIRRYzu2WitjsnZqZ1t637cOGce8937ved7xJKli5SawA0MfE+AJvAnAXoPYhfECsPbLNmsriEFgIxVaFR5i6AegIK+eBCo7cx4yII0uGqZpgrpr1ccPGmXKSF+C2BNpa+iMGvnCmjDgnKgpkiluxQiJrtLLajw5jzATQr2UOg1tJivyvQ7cSNePFZRCSPEWGbE4/GqFKkalTwGBGUUgAX6IWrXlZCuXL7uPGx+FyzkvdzrJwnTchOIpz9X/d8LsdoyJjGo3wcsVLtBD4NoJ90IYeZ2CZWvoD45D8aMEYc0yho0/NpiZadHgawFYRR0kXyiW1GDy3tGo+GFXfsj9qjv3LYqYa5VnHJdEyjLg+sCfmQyJ/KjD8FTcinjmkcRICcIaJQsXCRrmRtui36cgHAkhMErPVjxnefgm0ae7w4YqWOKuyeADANoueuqz5Ot62fKKali5Rnsn4CVAa/I3+ECt3Iq1zZO6mH5mY7mHABjHmALjlfqzuRIDcPpIvUdRDvYuAZRbrlZmJqdeI1XudgXZss0xfP+hyDl/IQcuo5p716pAAi+7KqciUwkkjeYsa9v7gKOUiE/fkCF6hPx41BL64ScrcKNNqm0RJYuYfDek7ehkJXFwwzwKr2LeVxbWLm144Z3RHoJA8Q8yknVLEXsVUzhU+T4JC2fPwMK+6PdHllH46s/KlbsgHAAAgJAG/gogUKPtjL5jvRuGHeH2Opccq6x1aXuephJncLQE1gZDzDABiaU8N3ZmLrPhfX/AYp2hIKQjp+9wAAAABJRU5ErkJggg=="
}
};
if (window.OpenWithManager) {
window.OpenWithManager.destroy();
delete window.OpenWithManager;
}
function $(id) {
return document.getElementById(id);
}
window.OpenWithManager = {
useMenu: false,
getTypeDesc: function (type) {
switch (type) {
case "page":
return "本页";
case "link":
return "链接";
//case "tab": return "标签";
//case "bm": return "书签";
}
return "";
},
buildMenuName: function (label, type) {
return "用 " + label + " 打开" + this.getTypeDesc(type);
},
attachNode: function (anchorNode, node) {
if (this.useMenu) {
anchorNode.appendChild(node);
} else {
anchorNode.parentNode.insertBefore(node, anchorNode);
}
},
createMenuPopup: function (anchorNode, type) {
let menu = document.createXULElement("menu");
menu.setAttribute("label", MENU_NAME);
menu.setAttribute("id", "openwith-menu-" + type);
menu.setAttribute("class", "menu-iconic openwith-menu open-" + type);
menu.setAttribute("image", browsers.all.image);
anchorNode.parentNode.insertBefore(menu, anchorNode);
let popup = document.createXULElement("menupopup");
popup.id = "openwith-popup-" + type;
menu.appendChild(popup);
return popup;
},
createMenuItem: function (anchorNode, id, browser, type) {
let menuitem = document.createXULElement("menuitem");
menuitem.id = "openwith-m-" + type + "-" + id;
menuitem.setAttribute("label", this.buildMenuName(browser.name, type));
menuitem.setAttribute("oncommand", "OpenWithManager.openWithOtherBrowser(this,'" + id + "','" + type + "')");
menuitem.setAttribute("class", "menuitem-iconic openwith-menuitem open-" + type);
if (browser.image) {
menuitem.setAttribute("image", browser.image);
}
this.attachNode(anchorNode, menuitem);
},
createBrowserMenu: function (anchorNode, type) {
for (let key in browsers) {
try {
if (browsers[key].enable) {
this.createMenuItem(anchorNode, key, browsers[key], type);
}
} catch (e) {
alert(e.message);
}
}
},
//contentAreaContextMenu
initContentAreaMenu: function () {
var inspos = $("inspect-separator");
let sep = document.createXULElement("menuseparator");
sep.setAttribute("class", "openwith-menuitem");
inspos.parentNode.insertBefore(sep, inspos);
this.useMenu = USE_MENU_AREA;
var anchorNode;
if (this.useMenu) {
anchorNode = this.createMenuPopup(inspos, "area");
} else {
anchorNode = inspos;
}
//链接部分
this.createBrowserMenu(anchorNode, "link");
let sepLink = document.createXULElement("menuseparator");
sepLink.setAttribute("class", "open-link openwith-menuitem");
this.attachNode(anchorNode, sepLink);
//控制链接菜单的显示
inspos.parentNode.addEventListener("popupshowing", this, false);
//页面部分
this.createBrowserMenu(anchorNode, "page");
},
//tabContextMenu
initTabContextMenu: function () {
var inspos = $("context_closeTabOptions") || $("context_closeTabOptions")
let sep = document.createXULElement("menuseparator");
sep.setAttribute("class", "openwith-menuitem");
inspos.parentNode.insertBefore(sep, inspos.nextSibling);
this.useMenu = USE_MENU_TAB;
var anchorNode;
if (this.useMenu) {
anchorNode = this.createMenuPopup(sep.nextSibling, "tab");
} else {
anchorNode = sep.nextSibling;
}
this.createBrowserMenu(anchorNode, "tab");
},
//placesContext
initPlacesContextMenu: function () {
var inspos = $("placesContext_openSeparator");
//let sep = document.createXULElement("menuseparator");
//inspos.parentNode.insertBefore(sep, inspos);
this.useMenu = USE_MENU_PLACE;
var anchorNode;
if (this.useMenu) {
anchorNode = this.createMenuPopup(inspos, "place");
} else {
anchorNode = inspos;
}
this.createBrowserMenu(anchorNode, "place");
//文件夹显示
inspos.parentNode.addEventListener("popupshowing",this, false);
},
handleEvent: function (event) {
if(event.target.id=="placesContext"){
var isFloder = false;
try {
let selectedNode = PlacesUIUtils.getViewForNode(event.target.ownerDocument.popupNode).selectedNode;
isFloder = !selectedNode || selectedNode.hasChildren;
} catch (e) {
}
let menus = $("placesContext").querySelectorAll(".open-place");
for (let menu of menus) {
if (isFloder) {
menu.hidden = true;
} else {
menu.hidden = false;
menu.disabled = false;
}
}
}
if(event.target.id=="contentAreaContextMenu"){
let menus = $("contentAreaContextMenu").querySelectorAll(".open-link");
for (let menu of menus) {
if (gContextMenu.onLink) {
menu.hidden = false;
} else {
menu.hidden = true;
}
}
}
},
init: function () {
//contentAreaContextMenu
this.initContentAreaMenu();
//tabContextMenu
this.initTabContextMenu();
//placesContext
this.initPlacesContextMenu();
},
destroy:function () {
$("contentAreaContextMenu").removeEventListener("popupshowing", this, false);
$("placesContext_openSeparator").removeEventListener("popupshowing", this, false);
let menus = document.querySelectorAll(".openwith-menu"),
menuitems = document.querySelectorAll(".openwith-menuitem");
for(let menuitem of menuitems){
menuitem.parentNode.removeChild(menuitem);
}
for(let menu of menus){
menu.parentNode.removeChild(menu);
}
},
openWithBrowser: function (url, path) {
if (!path) {
alert("浏览器路径未设置 ");
return;
}
if (path == "microsoft-edge") {
//edge用url打开
var cmdUrl = path + ":" + url;
let win = window.openDialog(cmdUrl, "", "chrome");
win.close();
return;
}
let clientApp = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
clientApp.initWithPath(path);
if (!clientApp.exists()) {
alert("浏览器路径错误: " + path);
return;
}
try {
let ss = Cc["@mozilla.org/browser/shell-service;1"]
.getService(Ci.nsIShellService);
ss.openApplicationWithURI(clientApp, url);
} catch (e) {
let p = Cc["@mozilla.org/process/util;1"]
.createInstance(Ci.nsIProcess);
p.init(clientApp);
p.run(false, [url], 1);
}
},
openWithOtherBrowser : function (obj, id, type) {
var url;
switch (type) {
case "page":
url = gBrowser.currentURI.spec;
break;
case "link":
url = gContextMenu.linkURL;
break;
case "tab": {
let tab = TabContextMenu.contextTab;
let bw = tab && tab.linkedBrowser;
url = bw && bw.currentURI.spec;
}
break;
case "place":
url = PlacesUIUtils.getViewForNode(PlacesUIUtils.lastContextMenuTriggerNode).selectedNode.uri;
break;
}
if (url) {
if (id == "all") {
for (let key in browsers) {
let browser = browsers[key];
if (browser.enable && key != "all" && browser.path) {
this.openWithBrowser(url, browser.path);
}
}
} else {
let browser = browsers[id];
this.openWithBrowser(url, browser.path);
}
}
}
};
OpenWithManager.init();
})();
Alles anzeigen