20 个 JavaScript 自动化脚本,带你解锁浏览器效率!
前言
以前,我总在浏览器上花大量时间处理重复性任务——填写表单、管理标签页、浏览无尽的页面。我感觉一定有更聪明的方法来处理这一切。
所以,我转向JavaScript来自动化这些任务。效果立竿见影。以前需要数小时的工作,现在只需要几分钟就能完成。
在这篇文章中,我将分享20个简单的JavaScript脚本,它们可以帮助你自动化常见的浏览器任务。如果你想节省时间并提高工作效率,请继续阅读。
1. 自动填写表单
问题: 你是否经常在不同的网站上一遍遍地输入相同的个人信息?填写求职申请、网上购物或注册表单会让人感到枯乏味。
解决方案:
function autoFillForm(formData) {
const inputs = document.querySelectorAll('input');
inputs.forEach(input => {
const name = input.name.toLowerCase();
if (formData[name]) {
input.value = formData[name];
}
});
}
使用场景: 自动填充表单字段,例如姓名、邮箱、地址等常用信息。
2. 屏幕截图
问题: 你在阅读一篇重要的文章或查找关键信息时,却无法保存整个页面。截图总是会截断一部分内容,或者需要多个步骤。
解决方案:
function captureScreenshot() {
html2canvas(document.body).then(canvas => {
const link = document.createElement('a');
link.download = 'screenshot.png';
link.href = canvas.toDataURL();
link.click();
});
}
使用场景: 一键截取全页面截图,非常适合研究、文档记录或保存重要信息。
3. 文本提取工具
问题: 你找到了一篇很棒的文章,但复制文本却是一场噩梦。有些网站会阻止复制,或者文本分散在多个部分。
解决方案:
function extractAllText() {
const allText = document.body.innerText;
navigator.clipboard.writeText(allText);
alert('Text copied to clipboard!');
}
使用场景: 一键提取并复制网页上的所有可读文本。
4. 链接收集器
问题: 研究工作花费的时间太长?手动从页面复制每个链接既费时又容易出错。
解决方案:
function collectAllLinks() {
const links = Array.from(document.links)
.map(link => link.href)
.filter(link => link.startsWith('http'));
return links;
}
使用场景: 快速收集网页上的所有链接,用于研究、内容整理或竞争分析。
5. 自动暂停滚动播放视频
问题: 在不同的标签页中观看多个视频,它们同时播放,消耗大量数据并产生混乱的音频。
解决方案:
function pauseVideoOnScroll() {
window.addEventListener('scroll', () => {
const videos = document.querySelectorAll('video');
videos.forEach(video => {
if (video.getBoundingClientRect().bottom < 0) {
video.pause();
}
});
});
}
使用场景: 当视频滚动出视图时自动暂停视频,节省带宽并防止不必要的背景噪音。
6. 自动关闭Cookie同意弹窗
问题: 那些烦人的Cookie同意弹窗每次都会中断你的浏览体验。点击、点击、点击——太麻烦了!
解决方案:
function autoDismissCookies() {
const cookieButtons = [
'accept all', 'agree', 'got it', 'close', 'continue'
];
const buttons = Array.from(document.querySelectorAll('button'))
.filter(btn => cookieButtons.some(text =>
btn.textContent.toLowerCase().includes(text)
));
buttons[0]?.click();
}
使用场景: 自动关闭Cookie同意弹窗,简化你的浏览体验。
7. 强制启用暗黑模式
问题: 深夜浏览网页,明亮的白色背景会刺伤眼睛。并非每个网站都提供暗黑模式,你的眼睛正在受罪。
解决方案:
function enableDarkMode() {
document.body.classList.add('dark-mode');
document.querySelectorAll('*').forEach(el => {
el.style.backgroundColor = '#121212';
el.style.color = '#ffffff';
});
}
使用场景: 强制在不支持原生暗黑模式的网站上启用暗黑模式,保护你在深夜浏览网页时的视力。
8. 阅读时间估算器
问题: 你打开了一篇文章,但不确定是否有足够的时间完整阅读。是否应该稍后再阅读?
解决方案:
function estimateReadingTime() {
const text = document.body.innerText;
const wordCount = text.trim().split(/\s+/).length;
const readingTime = Math.ceil(wordCount / 200);
console.log(`Estimated reading time: ${readingTime} minutes`);
}
使用场景: 快速估算任何文章的阅读时间,帮助你更好地管理时间。
9. 自动翻译
问题: 找到一篇有趣的外国语文章,但翻译应用很笨重,需要在多个平台之间切换。
解决方案:
function translatePage(targetLanguage) {
const googleTranslateScript = document.createElement('script');
googleTranslateScript.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
document.body.appendChild(googleTranslateScript);
window.googleTranslateElementInit = function() {
new google.translate.TranslateElement({
pageLanguage: 'auto',
includedLanguages: targetLanguage
});
};
}
使用场景: 无需离开当前网站即可立即翻译整个网页。
10. 自动下载管理器
问题: 你在摄影网站或设计图库上,想下载多张图片。一张张下载太麻烦了。
解决方案:
function downloadAllImagesInView() {
const images = Array.from(document.images)
.filter(img => img.complete && img.naturalWidth > 0);
images.forEach((img, index) => {
const link = document.createElement('a');
link.href = img.src;
link.download = `image_${index}.jpg`;
link.click();
});
}
使用场景: 一键下载网页上所有可见的图片。
11. 无限滚动禁用器
问题: 无限滚动的网站可能会让人不知所措。你不断滚动,却找不到开始的地方。
解决方案:
function disableInfiniteScroll() {
window.addEventListener('scroll', (e) => {
const scrollTriggers = document.querySelectorAll('.load-more');
scrollTriggers.forEach(trigger => {
trigger.style.display = 'none';
});
});
}
使用场景: 阻止网站在你滚动时持续加载内容。
12. 自动登录脚本
问题: 不断使用相同的凭据登录多个网站?重复输入密码很繁琐且费时。
解决方案:
function autoLogin(username, password) {
const usernameField = document.querySelector('input[name="username"]');
const passwordField = document.querySelector('input[name="password"]');
const loginButton = document.querySelector('button[type="submit"]');
if (usernameField) usernameField.value = username;
if (passwordField) passwordField.value = password;
if (loginButton) loginButton.click();
}
使用场景: 自动化常用网站的登录流程。
13. 广告拦截器增强
问题: 网站上充斥着广告,它们会降低你的浏览速度并分散你的注意力。
解决方案:
function removeAds() {
const adSelectors = [
'.ad', '.advertisement',
'[class*="ad-"]', '[id*="ad-"]'
];
adSelectors.forEach(selector => {
document.querySelectorAll(selector)
.forEach(el => el.remove());
});
}
使用场景: 动态删除网页上的广告元素。
14. 文本转语音阅读器
问题: 想在做其他事情的同时阅读内容?阅读很费时,而且并非每个人都有时间坐下来阅读。
解决方案:
function readPageContent() {
const speech = new SpeechSynthesisUtterance(document.body.innerText);
window.speechSynthesis.speak(speech);
}
使用场景: 将网页文本转换为语音,实现免提阅读。
15. 自动优惠券查找器
问题: 网上购物时,总想知道是否错过了优惠券。
解决方案:
function findCoupons() {
const couponRegex = /\b(\d{2,3}%\s*off|\$\d+\s*off|promo)\b/gi;
const pageText = document.body.innerText;
const coupons = pageText.match(couponRegex) || [];
console.log('Potential Coupons:', coupons);
}
使用场景: 扫描网页,查找潜在的折扣码和促销活动。
16. 配色方案分析器
问题: 好奇网站的设计和配色方案?想了解它的色彩心理学?
解决方案:
function analyzeColorScheme() {
const styles = window.getComputedStyle(document.body);
const backgroundColor = styles.backgroundColor;
const textColor = styles.color;
console.log('Background:', backgroundColor);
console.log('Text Color:', textColor);
}
使用场景: 自动分析并记录网站的配色方案。
17. 坏链接检测器
问题: 点击链接却无法跳转,令人沮丧。如何快速识别哪些链接已损坏?
解决方案:
function detectBrokenLinks() {
const links = Array.from(document.links);
links.forEach(link => {
fetch(link.href)
.then(response => {
if (!response.ok) {
console.warn('Broken Link:', link.href);
}
});
});
}
使用场景: 扫描并识别网页上的坏链接。
18. 自动笔记提取器
问题: 阅读文章时想保存重要的片段,但复制粘贴很麻烦?
解决方案:
function extractHighlightedText() {
const selection = window.getSelection();
const highlightedText = selection.toString();
if (highlightedText) {
localStorage.setItem('webpage-notes', highlightedText);
}
}
使用场景: 自动将高亮显示的文本保存到本地浏览器存储。
19. 性能分析器
问题: 想知道为什么网站感觉很慢?想了解其性能?
解决方案:
function analyzeSitePerformance() {
const loadTime = performance.now();
const resourceCount = performance.getEntriesByType('resource').length;
console.log('Page Load Time:', loadTime, 'ms');
console.log('Total Resources:', resourceCount);
}
使用场景: 收集任何网页的快速性能指标。
20. 动态内容拦截器
问题: 有些网站的内容你不想看到——无论是特定主题、关键词还是令人分心的元素。
解决方案:
function blockDynamicContent(keywords) {
const elements = document.querySelectorAll('*');
elements.forEach(el => {
if (keywords.some(keyword =>
el.textContent.toLowerCase().includes(keyword)
)) {
el.style.display = 'none';
}
});
}
使用场景: 动态隐藏包含特定关键词的内容。
总结
有了这20个JavaScript脚本,你就可以掌控浏览器中最重复的任务,从而腾出时间去做真正重要的事情。
如果你想提高工作效率、简化工作流程或在更短的时间内完成更多工作,自动化可以带来很大的帮助。
免责声明: 一些脚本可能需要额外的库或浏览器权限。请务必在受控环境中测试脚本,并获得必要的授权。