我用AI做了个超厉害的谷歌浏览器插件!

117 阅读5分钟

AI 助力开发谷歌浏览器插件,过程详解****

在日常的开发和浏览过程中,我们常常会有一些个性化的需求,比如快速获取页面特定信息、自动填充表单等。为了满足这些需求,我借助 AI 工具开发了一款谷歌浏览器插件。下面就为大家详细介绍开发过程,在需要图表图片代码展示的地方我会特别说明。

一、开发前的准备****

明确插件功能****

首先要确定插件的功能,我开发的这款插件主要用于在浏览网页时,自动提取当前页面的标题、关键词,并将其保存到本地,方便后续整理和查阅。

开发环境搭建****

开发谷歌浏览器插件需要的环境很简单,只需要安装谷歌浏览器和一款代码编辑器(如 VS Code)即可。这里应该有一张展示开发环境的截图,左侧是 VS Code 编辑器,右侧是谷歌浏览器。

二、插件的核心文件****

谷歌浏览器插件主要由以下几个核心文件组成:

manifest.json:插件的配置文件,用于指定插件的名称、版本、权限、所需的资源文件等。

popup.html:插件点击后弹出的页面的 HTML 结构。

content.js:用于操作当前浏览页面的脚本。

background.js:插件的后台脚本,用于处理一些后台任务和事件监听。

这里应该有一张插件文件结构的示意图,清晰展示各个文件之间的关系。

三、开发过程详解****

编写 manifest.json 文件****

manifest.json是插件的入口文件,谷歌浏览器通过它来识别和加载插件。以下是该文件的代码:

 

{    "manifest_version": 3,    "name": "页面信息提取插件",    "version": "1.0",    "description": "自动提取页面标题和关键词并保存",    "permissions": ["activeTab", "storage"],    "action": {        "default_popup": "popup.html",        "default_icon": {            "16": "icons/icon16.png",            "48": "icons/icon48.png",            "128": "icons/icon128.png"        }    },    "content_scripts": [        {            "matches": ["<all_urls>"],            "js": ["content.js"]        }    ],    "background": {        "service_worker": "background.js"    }}

在manifest.json中,manifest_version指定了 manifest 的版本,目前推荐使用版本 3;permissions声明了插件需要的权限,activeTab允许插件临时访问当前活动标签页,storage允许插件使用本地存储;content_scripts指定了注入到网页中的脚本。这里应该有一张对manifest.json关键配置项进行说明的图表。

开发 popup.html 及相关脚本****

popup.html是插件点击后弹出的页面,用于展示提取到的信息和提供操作按钮。代码如下:

 

            body {            width: 300px;            padding: 10px;        }        .info {            margin-bottom: 10px;        }        button {            background-color: #4CAF50;            color: white;            border: none;            padding: 5px 10px;            cursor: pointer;        }        
        

页面标题:

        

    
    
        

关键词:

        

    
    保存信息    

popup.js用于处理 popup 页面的逻辑,如获取页面信息并展示、处理保存按钮的点击事件等。代码如下:

 

// 获取当前活动标签页chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {    // 向content.js发送消息,请求获取页面信息    chrome.tabs.sendMessage(tabs[0].id, {action: "getPageInfo"}, function(response) {        document.getElementById("title").textContent = response.title;        document.getElementById("keywords").textContent = response.keywords;    });});// 保存按钮点击事件document.getElementById("saveBtn").addEventListener("click", function() {    const title = document.getElementById("title").textContent;    const keywords = document.getElementById("keywords").textContent;    // 将信息保存到本地存储    chrome.storage.local.set({[new Date().toISOString()]: {title, keywords}}, function() {        alert("保存成功!");    });});

这里应该有一张 popup 页面的效果图,展示页面的布局和样式。

开发 content.js 脚本****

content.js用于在网页加载完成后,提取页面的标题和关键词,并响应来自 popup.js 的消息。代码如下:

 

// 提取页面标题和关键词function getPageInfo() {    const title = document.title;    // 简单提取meta标签中的关键词,实际应用中可以根据需求优化    const metaKeywords = document.querySelector('meta[name="keywords"]');    const keywords = metaKeywords ? metaKeywords.content : "无关键词";    return {title, keywords};}// 监听来自popup.js的消息chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {    if (request.action === "getPageInfo") {        sendResponse(getPageInfo());    }});

这里可以有一张展示脚本在网页中运行并提取信息的示意图。

开发 background.js 脚本****

background.js作为后台脚本,主要用于处理一些全局事件,这里我们暂时只做简单的初始化。代码如下:

 

// 插件安装时的初始化操作chrome.runtime.onInstalled.addListener(function() {    console.log("插件安装成功!");});

四、插件的测试与调试****

加载插件到谷歌浏览器****

打开谷歌浏览器,在地址栏输入chrome://extensions/,进入扩展程序页面。

开启右上角的 “开发者模式”。

点击 “加载已解压的扩展程序”,选择插件所在的文件夹,即可加载插件。这里应该有一张加载插件过程的截图。

调试方法****

对于popup.html和popup.js,可以右键点击插件图标,选择 “检查”,打开开发者工具进行调试。

对于content.js,可以在当前浏览的网页中按 F12 打开开发者工具,在 “Sources” 面板中找到content.js进行调试。

对于background.js,可以在扩展程序页面找到插件,点击 “背景页”(对于 manifest v3 是 “service worker”)打开对应的开发者工具进行调试。这里应该有一张调试界面的截图。

五、总结****

通过 AI 的辅助,我们顺利完成了这款谷歌浏览器插件的开发。从明确功能、搭建环境,到编写各个核心文件,再到测试调试,每一步都离不开对谷歌浏览器插件开发规范的遵循。这款插件虽然简单,但涵盖了插件开发的基本流程和核心技术点。

希望以上的开发过程详解能对大家有所帮助,如果你也有开发浏览器插件的想法,不妨动手尝试一下。在深度学习过程中,电脑跑不动需要云租服务器的话,可以从性价比、易用、稳定三个方向来找。 七月份易嘉云平台yijiacloud.com.cn,有活动可以免费使用算力,新用户注册给50算力金,够跑24小时4080,有需要去薅