您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在 VS Code Marketplace 页面添加直接下载按钮
- // ==UserScript==
- // @name VS Code Extension Downloader
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description 在 VS Code Marketplace 页面添加直接下载按钮
- // @author Trae AI
- // @match https://marketplace.visualstudio.com/items?itemName=*
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- async function init() {
- // 获取 itemName 参数
- const urlParams = new URLSearchParams(window.location.search);
- const itemName = urlParams.get('itemName');
- if (!itemName) return;
- // 分割 publisher 和 extension 名称
- const [publisher, extension] = itemName.split('.');
- // 创建下载按钮
- const downloadButton = document.createElement('button');
- downloadButton.innerHTML = '下载最新版本';
- downloadButton.style.cssText = `
- background-color: #0078d4;
- color: white;
- border: none;
- padding: 8px 16px;
- border-radius: 4px;
- cursor: pointer;
- position: fixed;
- top: 20px;
- right: 20px;
- z-index: 10000;
- `;
- // 点击事件处理
- downloadButton.addEventListener('click', async () => {
- // 跳转到版本历史页面
- window.location.hash = 'version-history';
- // 等待版本历史表格加载
- await new Promise(resolve => setTimeout(resolve, 1000));
- // 获取最新版本号
- const versionCell = document.querySelector('.version-history-table-body .version-history-container-row:first-child .version-history-container-column:first-child');
- if (!versionCell) {
- alert('无法获取版本号');
- return;
- }
- const version = versionCell.textContent.trim();
- const downloadUrl = `https://marketplace.visualstudio.com/_apis/public/gallery/publishers/${publisher}/vsextensions/${extension}/${version}/vspackage`;
- // 创建下载
- const link = document.createElement('a');
- link.href = downloadUrl;
- link.download = `${itemName}-${version}.vsix`;
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- });
- // 添加按钮到页面
- document.body.appendChild(downloadButton);
- }
- // 启动脚本
- init();
- })();