微软CRX下载器

使非Edge浏览器,也能从微软扩展商店下载CRX文件

目前为 2021-08-16 提交的版本。查看 最新版本

// ==UserScript==
// @name         微软CRX下载器
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  使非Edge浏览器,也能从微软扩展商店下载CRX文件
// @author       那年那tu那些事
// @match        *://microsoftedge.microsoft.com/addons/*
// @icon         https://img-prod-cms-rt-microsoft-com.akamaized.net/cms/api/am/imageFileData/RE4sQDc?ver=30c2&q=90&m=6&h=40&w=40&b=%23FFFFFFFF&l=f&o=t&aim=true
// ==/UserScript==

(function(){
  function MicrosoftCRXdownloader(){
  //获取扩展ID
var crxid = window.location.pathname;
crxid = crxid.slice(crxid.search("detail/") + "detail/".length);
crxid = crxid.slice(crxid.search("/") + 1);
//ID写入URL
var crxurl = "https://edge.microsoft.com/extensionwebstorebase/v1/crx?response=redirect&acceptformat=crx3&x=id%3D" +
	crxid + "%26installsource%3Dondemand%26uc";
//构造下载按钮
var buttonID = "buttonID" + crxid;
var buttonStyle =
	"width:max-content; min-width: 90px;height:max-content; min-height: 32px; cursor: pointer; margin-inline-end: 8px;background: rgb(0, 120, 212);border:2px solid transparent;border-radius:2px;text-align: center;";
var buttonHTML = "<button id=" + buttonID + " style='" + buttonStyle + "' >" + "<a href=" + crxurl +
	" target='_blank' style='color: white;text-decoration:none;'><b>下载CRX</b><br></a></button>";
//定时器循环检测是否存在“获取”按钮,若存在则将“下载CRX”按钮替换“获取”按钮
var CRXtimerFlag=true;
var CRXtimerID = setInterval(function() {
  if(CRXtimerFlag===true){
    if (document.getElementById("getOrRemoveButton-" + crxid)!== null) {
			document.getElementById("getOrRemoveButton-" + crxid).parentElement.innerHTML = buttonHTML;
			document.getElementById("buttonID" + crxid).onclick = function() {
				window.open(crxurl);}
      CRXtimerFlag=false;
		}
  }
}, 200)
//3s超时结束定时器并刷新网页
setTimeout(function(){clearInterval(CRXtimerID);
                     if (document.getElementById("buttonID" + crxid)=== null){
                       window.location.reload();
                     }
                     },3000);
}

//判断是否执行
if (window.location.pathname.search("detail/")!==-1){
  MicrosoftCRXdownloader();
}
})();