从零开始:教你用JavaScript打造自定义“摸鱼点击工具”浏览器扩展

在日常工作中,我们常常需要处理一些重复性的点击操作,比如网页上的表单提交、游戏中的自动点击,或是定时刷新页面。今天,我手把手教你如何开发一个轻量级的浏览器扩展——一个自定义“摸鱼点击工具”。你无需深厚编程基础,只要跟着步骤,就能在Chrome或Edge浏览器中运行属于自己的自动化工具。 注:本教程仅用于学习目的,请勿用于违反公司或平台规定的场景。 第一步:准备工作——安装必要工具 首先,确保你

在日常工作中,我们常常需要处理一些重复性的点击操作,比如网页上的表单提交、游戏中的自动点击,或是定时刷新页面。今天,我手把手教你如何开发一个轻量级的浏览器扩展——一个自定义“摸鱼点击工具”。你无需深厚编程基础,只要跟着步骤,就能在Chrome或Edge浏览器中运行属于自己的自动化工具。

:本教程仅用于学习目的,请勿用于违反公司或平台规定的场景。

第一步:准备工作——安装必要工具

首先,确保你的电脑上安装了Chrome或Edge浏览器。然后,我们需要一个文本编辑器(比如VS Code、Notepad++或记事本)。建议创建新文件夹,命名为“auto-clicker-ext”,用于存放所有文件。

浏览器扩展本质上是一个包含配置文件和代码的文件夹。我们无需打包,开发阶段直接加载即可。

第二步:创建扩展核心配置文件——manifest.json

在“auto-clicker-ext”文件夹中,新建一个名为manifest.json的文件。这个文件告诉浏览器扩展的基本信息:名称、版本、权限等。写入以下内容:

{
  "manifest_version": 3,
  "name": "摸鱼点击器",
  "version": "1.0.0",
  "description": "自定义自动点击工具,支持间隔与目标元素选择",
  "permissions": ["activeTab", "storage"],
  "action": {
    "default_popup": "popup.html"
  },
  "content_scripts": [
    {
      "matches": [""],
      "js": ["content.js"]
    }
  ]
}

注意这里:permissions中的activeTab允许扩展访问当前标签页,storage用于保存设置。 content_scripts中的表示在所有网页上注入content.js脚本。

第三步:设计弹出界面——popup.html

用户点击浏览器工具栏图标后,会弹出一个小窗口,用来控制点击行为。新建popup.html文件,代码如下:




  
  


  

摸鱼点击工具

就绪

界面很简洁:两个输入框分别控制点击间隔和次数,两个按钮控制开始和停止,一个状态提示。

第四步:编写弹出窗口逻辑——popup.js

新建popup.js,负责处理用户与弹出窗口的交互,并发送消息到内容脚本:

let isRunning = false;

document.getElementById('startBtn').addEventListener('click', () => {
  const interval = parseInt(document.getElementById('interval').value);
  const count = parseInt(document.getElementById('count').value);
  if (interval < 100 || count < 1) {
    alert('请设置合理数值');
    return;
  }
  chrome.tabs.query({active: true, currentWindow: true}, (tabs) => {
    chrome.tabs.sendMessage(tabs[0].id, {
      action: 'start',
      interval: interval,
      count: count
    });
  });
  isRunning = true;
  document.getElementById('startBtn').disabled = true;
  document.getElementById('stopBtn').disabled = false;
  document.getElementById('status').textContent = '运行中...';
});

document.getElementById('stopBtn').addEventListener('click', () => {
  chrome.tabs.query({active: true, currentWindow: true}, (tabs) => {
    chrome.tabs.sendMessage(tabs[0].id, { action: 'stop' });
  });
  isRunning = false;
  document.getElementById('startBtn').disabled = false;
  document.getElementById('stopBtn').disabled = true;
  document.getElementById('status').textContent = '已停止';
});

第五步:实现真正的自动点击——content.js

这是核心文件。当用户点击“开始”按钮,扩展会向当前网页发送消息,这个脚本会监听消息并执行点击操作:

let timerId = null;
let remainingClicks = 0;

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.action === 'start') {
    // 清除之前的定时器(如果有)
    if (timerId) clearInterval(timerId);
    
    remainingClicks = request.count;
    const interval = request.interval;
    
    // 立即执行第一次点击
    simulateClick();
    remainingClicks--;
    
    timerId = setInterval(() => {
      if (remainingClicks <= 0) {
        clearInterval(timerId);
        timerId = null;
        console.log('点击完成');
        return;
      }
      simulateClick();
      remainingClicks--;
    }, interval);
    
  } else if (request.action === 'stop') {
    if (timerId) {
      clearInterval(timerId);
      timerId = null;
    }
    remainingClicks = 0;
  }
});

function simulateClick() {
  // 获取鼠标指针位置下的元素(默认点击当前位置)
  // 你也可以修改为通过CSS选择器定位元素,但为了简化,这里用点击当前鼠标位置
  const event = new MouseEvent('click', {
    view: window,
    bubbles: true,
    cancelable: true,
    clientX: window.innerWidth / 2,  // 默认点击屏幕中央
    clientY: window.innerHeight / 2
  });
  document.elementFromPoint(window.innerWidth / 2, window.innerHeight / 2).dispatchEvent(event);
}

注意:这里默认点击屏幕中央。如果你想点击特定元素,可以修改simulateClick函数,比如使用document.querySelector('#myButton')来定位。

第六步:加载和测试扩展

在Chrome地址栏输入chrome://extensions/,开启右上角的“开发者模式”。点击“加载已解压的扩展程序”,选择你的“auto-clicker-ext”文件夹。现在,你会看到“摸鱼点击器”出现在工具栏中。

打开任意网页,点击工具栏图标,设置间隔为1000毫秒,点击次数5次,然后点击“开始点击”。你会发现浏览器自动在网页中央位置执行点击操作!可以打开控制台(F12)查看输出日志。

第七步:进阶优化——添加自定义目标选择

默认点击屏幕中央有点粗糙。我们可以增加一个“选择目标”功能,让用户点击网页上的某个元素,然后记录它的CSS选择器。限于篇幅,这里只提供思路:

popup.html添加一个“拾取元素”按钮;在content.js中监听鼠标移动,当用户点击被拾取的元素时,获取其唯一标识(如id或类名),并保存到chrome.storage中。这样下次点击时,直接定位到该元素。

记得在manifest.jsonpermissions中加入"storage",且上述代码中已包含。

常见问题与解决方法

Q:为什么点击没反应? 检查目标网页是否允许注入脚本(多数网站允许)。同时确认simulateClickelementFromPoint返回非null。

Q:如何增加右键点击?simulateClick中修改event类型为'contextmenu',但注意某些事件需要特殊处理。

Q:如何实现次数无限?popup.html中将count输入框设置为空或0,并在content.js中判断如果request.count <= 0则改为无限循环。

结语

通过以上步骤,你成功创建了一个自定义“摸鱼点击工具”的浏览器扩展。从配置文件到界面,再到后台脚本,整个过程体现了浏览器扩展开发的经典模式:manifest配置 > 弹出UI > 后台逻辑 > 内容脚本。这个工具你可以进一步扩展,例如添加热键、保存预设、或支持多元素点击。

如果你遇到任何问题,欢迎查看扩展的官方文档,或在本站的“摸鱼点击工具说明”中寻找灵感。记住,技术本身是中性的,如何使用取决于你的选择。现在,开始动手吧!

免责声明:本文内容来源于公开资料、用户提交或站内整理,仅供学习与参考,不构成任何投资、医疗、法律或专业建议。请结合实际情况自行判断,相关风险由使用者自行承担。