能否基于上次选择的文件自动填充竞赛编程网站的Choose File按钮?
实现USACO提交时自动关联上次选择的代码文件(Chrome环境)
Chrome原生的自动填充功能不支持文件选择框,但可以通过两种方式简化操作,减少手动找文件的麻烦:
方法一:用Tampermonkey油猴脚本自定义实现
因为浏览器安全限制,脚本没法直接帮你选中文件,但可以帮你记住上次提交的文件名,辅助快速定位:
- 先在Chrome里安装Tampermonkey扩展(应用商店搜索即可找到)
- 点击Tampermonkey图标,选择「创建新脚本」,替换成下面的代码:
// ==UserScript== // @name USACO Auto File Select Helper // @namespace http://tampermonkey.net/ // @version 0.1 // @description 快速关联上次提交的USACO代码文件 // @author You // @match https://usaco.org/*submit* // @grant none // ==/UserScript== (function() { 'use strict'; const fileInput = document.querySelector('input[type="file"]'); if (!fileInput) return; // 读取上次保存的文件名 const lastFileName = localStorage.getItem('usaco_last_file'); // 保存本次选择的文件名 fileInput.addEventListener('change', function(e) { if (e.target.files.length > 0) { localStorage.setItem('usaco_last_file', e.target.files[0].name); } }); // 显示上次提交的文件名提示 if (lastFileName) { const hint = document.createElement('span'); hint.style.cssText = 'color:#666; margin-left:8px;'; hint.textContent = `上次提交: ${lastFileName}`; fileInput.parentNode.appendChild(hint); } })();
- 保存脚本后,打开USACO的提交页面,每次选完文件,脚本都会记住文件名,下次打开页面时会在按钮旁显示提示,帮你快速找到目标文件。如果需要更便捷的操作,还可以给脚本加快捷键,比如按特定组合键直接打开文件选择框并定位到常用目录(需要额外调整代码)。
方法二:用竞赛编程专用Chrome扩展
有些专门针对编程竞赛的扩展支持这类功能,它们通常:
- 允许你预设常用的代码存放目录
- 记住最近提交的几个文件,一键选择
- 部分还支持和本地编辑器同步代码(不过USACO要求传文件,所以重点看文件选择优化的功能)
注意:只从Chrome应用商店安装正规扩展,避免安全风险。
关键提醒
出于安全考虑,浏览器禁止任何工具在无用户交互的情况下自动选中本地文件,所以所有方案都需要你手动点击「choose file」按钮,只是帮你减少找文件的步骤,提升提交效率。
内容的提问来源于stack exchange,提问作者Joshua Yang
相关产品推荐
相关产品推荐

