20 个用于浏览器自动化任务的 JavaScript 脚本

我曾经在浏览器中花费了太多时间在重复的任务上——填写表单、管理标签和滚动无尽的页面。感觉必须有一种更聪明的方式来处理这一切。

于是,我转向了 JavaScript 来自动化这些任务。效果立竿见影。曾经需要几个小时的事情现在只需要几分钟。

在本文中,我将分享 20 个简单的 JavaScript 脚本,帮助您自动化常见的浏览器任务。如果您想节省时间并提高生产力,请继续阅读。

1. 自动表单填写

问题: 是否发现自己一遍又一遍地在不同网站上输入相同的个人信息?填写求职申请、在线购物或注册表单可能会让人感到麻木。

解决方案:

  1. function autoFillForm(formData) {
  2.   const inputs = document.querySelectorAll('input');
  3.   inputs.forEach(input => {
  4.     const name = input.name.toLowerCase();
  5.     if (formData[name]) {
  6.       input.value = formData[name];
  7.     }
  8.   });
  9. }

使用场景: 自动填充表单字段,如姓名、电子邮件、地址等。

2. 截图捕捉

问题: 您正在阅读一篇重要文章或找到一条关键信息,但无法保存整个页面。截图总是会截断或需要多个步骤。

解决方案:

  1. function captureScreenshot() {
  2.   html2canvas(document.body).then(canvas => {
  3.     const link = document.createElement('a');
  4.     link.download = 'screenshot.png';
  5.     link.href = canvas.toDataURL();
  6.     link.click();
  7.   });
  8. }

使用场景: 一键捕捉全页截图,非常适合研究、文档或保存重要信息。

3. 文本提取工具

问题: 您找到了一篇好文章,但复制文本却是一场噩梦。有些网站禁止复制,或者文本分散在多个部分。

解决方案:

  1. function extractAllText() {
  2.   const allText = document.body.innerText;
  3.   navigator.clipboard.writeText(allText);
  4.   alert('文本已复制到剪贴板!');
  5. }

使用场景: 一键提取并复制网页上的所有可读文本。

4. 链接采集器

问题: 研究耗时太长?手动复制页面上的每个链接既耗时又容易出错。

解决方案:

  1. function collectAllLinks() {
  2.   const links = Array.from(document.links)
  3.     .map(link => link.href)
  4.     .filter(link => link.startsWith('http'));
  5.   return links;
  6. }

使用场景: 快速收集网页上的所有链接,用于研究、内容策划或竞争分析。

5. 自动滚动暂停器

问题: 在不同标签中观看多个视频,它们同时播放,消耗您的流量并造成音频混乱。

解决方案:

  1. function pauseVideoOnScroll() {
  2.   window.addEventListener('scroll', () => {
  3.     const videos = document.querySelectorAll('video');
  4.     videos.forEach(video => {
  5.       if (video.getBoundingClientRect().bottom < 0) {
  6.         video.pause();
  7.       }
  8.     });
  9.   });
  10. }

使用场景: 当视频滚动出视图时自动暂停,节省带宽并防止不必要的背景噪音。

6. 自动点击 Cookie 同意

问题: 那些烦人的 Cookie 同意弹窗每次都会打断您的浏览。点击、点击、点击——太累了!

解决方案:

  1. function autoDismissCookies() {
  2.   const cookieButtons = [\
  3.     'accept all', 'agree', 'got it', 'close', 'continue'\
  4.   ];
  5.   const buttons = Array.from(document.querySelectorAll('button'))
  6.     .filter(btn => cookieButtons.some(text =>
  7.       btn.textContent.toLowerCase().includes(text)
  8.     ));
  9.   buttons[0]?.click();
  10. }

使用场景: 自动关闭 Cookie 同意弹窗,简化您的浏览体验。

7. 强制黑暗模式

问题: 深夜浏览时,明亮的白色网站让您的眼睛感到不适。并非所有网站都有黑暗模式,您的眼睛正在受苦。

解决方案:

  1. function enableDarkMode() {
  2.   document.body.classList.add('dark-mode');
  3.   document.querySelectorAll('*').forEach(el => {
  4.     el.style.backgroundColor = '#121212';
  5.     el.style.color = '#ffffff';
  6.   });
  7. }

使用场景: 强制在原生不支持黑暗模式的网站上启用黑暗模式,保护您的眼睛在深夜浏览。

8. 阅读时间估算器

问题: 您打开了一篇文章,但不确定是否有足够的时间完整阅读。是否应该将其加入书签以便稍后阅读?

解决方案:

  1. function estimateReadingTime() {
  2.   const text = document.body.innerText;
  3.   const wordCount = text.trim().split(/\s+/).length;
  4.   const readingTime = Math.ceil(wordCount / 200);
  5.   console.log(`预计阅读时间:${readingTime} 分钟`);
  6. }

使用场景: 快速估算任何文章的阅读时间,帮助您更好地管理时间。

9. 自动翻译

问题: 找到一篇有趣的外语文章,但翻译应用笨拙且需要切换多个平台。

解决方案:

  1. function translatePage(targetLanguage) {
  2.   const googleTranslateScript = document.createElement('script');
  3.   googleTranslateScript.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
  4.   document.body.appendChild(googleTranslateScript);
  5.   window.googleTranslateElementInit = function() {
  6.     new google.translate.TranslateElement({
  7.       pageLanguage: 'auto',
  8.       includedLanguages: targetLanguage
  9.     });
  10.   };
  11. }

使用场景: 无需离开当前网站即可即时翻译整个网页。

10. 自动下载管理器

问题: 您在摄影网站或设计画廊上,想要下载多张图片。逐一下载太麻烦了。

解决方案:

  1. function downloadAllImagesInView() {
  2.   const images = Array.from(document.images)
  3.     .filter(img => img.complete && img.naturalWidth > 0);
  4.   images.forEach((img, index) => {
  5.     const link = document.createElement('a');
  6.     link.href = img.src;
  7.     link.download = `image_${index}.jpg`;
  8.     link.click();
  9.   });
  10. }

使用场景: 一键下载网页上的所有可见图片。

11. 禁用无限滚动

问题: 无限滚动的网站可能会让人感到不知所措。您不断滚动,却忘记了起点。

解决方案:

  1. function disableInfiniteScroll() {
  2.   window.addEventListener('scroll', (e) => {
  3.     const scrollTriggers = document.querySelectorAll('.load-more');
  4.     scrollTriggers.forEach(trigger => {
  5.       trigger.style.display = 'none';
  6.     });
  7.   });
  8. }

使用场景: 防止网站在滚动时持续加载内容。

12. 自动登录脚本

问题: 经常使用相同凭据登录多个网站?反复输入密码既繁琐又耗时。

解决方案:

  1. function autoLogin(username, password) {
  2.   const usernameField = document.querySelector('input[name="username"]');
  3.   const passwordField = document.querySelector('input[name="password"]');
  4.   const loginButton = document.querySelector('button[type="submit"]');
  5.   if (usernameField) usernameField.value = username;
  6.   if (passwordField) passwordField.value = password;
  7.   if (loginButton) loginButton.click();
  8. }

使用场景: 在熟悉的网站上自动化登录过程。

13. 广告拦截增强

问题: 网站上充斥着广告,拖慢了您的浏览速度,分散了您对内容的注意力。

解决方案:

  1. function removeAds() {
  2.   const adSelectors = [\
  3.     '.ad', '.advertisement',\
  4.     '[class*="ad-"]', '[id*="ad-"]'\
  5.   ];
  6.   adSelectors.forEach(selector => {
  7.     document.querySelectorAll(selector)
  8.       .forEach(el => el.remove());
  9.   });
  10. }

使用场景: 动态移除网页上的广告元素。

14. 文本转语音阅读器

问题: 想在做其他事情时消费内容?阅读可能会耗时,并非每个人都有时间坐下来阅读。

解决方案:

  1. function readPageContent() {
  2.   const speech = new SpeechSynthesisUtterance(document.body.innerText);
  3.   window.speechSynthesis.speak(speech);
  4. }

使用场景: 将网页文本转换为语音,实现免提阅读。

15. 自动优惠券查找器

问题: 在线购物时,总是想知道是否有遗漏的优惠券代码。

解决方案:

  1. function findCoupons() {
  2.   const couponRegex = /\b(\d{2,3}%\s*off|\$\d+\s*off|promo)\b/gi;
  3.   const pageText = document.body.innerText;
  4.   const coupons = pageText.match(couponRegex) || [];
  5.   console.log('潜在优惠券:', coupons);
  6. }

使用场景: 扫描网页以查找潜在的折扣代码和促销活动。

16. 配色方案分析器

问题: 对网站的设计和配色方案感到好奇?想了解其色彩心理学?

解决方案:

  1. function analyzeColorScheme() {
  2.   const styles = window.getComputedStyle(document.body);
  3.   const backgroundColor = styles.backgroundColor;
  4.   const textColor = styles.color;
  5.   console.log('背景:', backgroundColor);
  6.   console.log('文本颜色:', textColor);
  7. }

使用场景: 自动分析并记录网站的配色方案。

17. 断链检测器

问题: 点击链接却无法访问,这让人感到沮丧。如何快速识别哪些链接是断链?

解决方案:

  1. function detectBrokenLinks() {
  2.   const links = Array.from(document.links);
  3.   links.forEach(link => {
  4.     fetch(link.href)
  5.       .then(response => {
  6.         if (!response.ok) {
  7.           console.warn('断链:', link.href);
  8.         }
  9.       });
  10.   });
  11. }

使用场景: 扫描并识别网页上的断链。

18. 自动笔记提取器

问题: 阅读文章时想保存重要片段,但复制粘贴很麻烦?

解决方案:

  1. function extractHighlightedText() {
  2.   const selection = window.getSelection();
  3.   const highlightedText = selection.toString();
  4.   if (highlightedText) {
  5.     localStorage.setItem('webpage-notes', highlightedText);
  6.   }
  7. }

使用场景: 自动将高亮文本保存到本地浏览器存储中。

19. 性能分析器

问题: 想知道为什么网站感觉很慢?想了解其性能表现?

解决方案:

  1. function analyzeSitePerformance() {
  2.   const loadTime = performance.now();
  3.   const resourceCount = performance.getEntriesByType('resource').length;
  4.   console.log('页面加载时间:', loadTime, 'ms');
  5.   console.log('总资源数:', resourceCount);
  6. }

使用场景: 快速收集任何网页的性能指标。

20. 动态内容屏蔽器

问题: 有些网站的内容您不想看到——无论是特定主题、关键词还是分散注意力的元素。

解决方案:

  1. function blockDynamicContent(keywords) {
  2.   const elements = document.querySelectorAll('*');
  3.   elements.forEach(el => {
  4.     if (keywords.some(keyword =>
  5.       el.textContent.toLowerCase().includes(keyword)
  6.     )) {
  7.       el.style.display = 'none';
  8.     }
  9.   });
  10. }

使用场景: 动态隐藏包含特定关键词的内容。

有了这 20 个 JavaScript 脚本,您可以掌控浏览器中最重复的任务,并腾出时间专注于真正重要的事情。

如果您想提高生产力、简化工作流程,或者在更短的时间内完成更多工作,自动化可以带来巨大的改变。

声明: 本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
前端

npmmirror 中国镜像站,npm设置最新淘宝镜像

2024-1-23 14:51:25

Mysql

MySQL server PID file could not be found! 的解决办法

2024-8-23 16:40:21

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索