【谷歌扩展程序入门】简单制作一个查看网页结构的扩展程序

简言

在想看网页结构的时候一般会F12查看元素内容。
太麻烦了 还不简单方便。

扩展程序

扩展建立在诸如 HTML、JavaScript 和 CSS 之类的 Web 技术之上。它们在单独的沙盒执行环境中运行并与 Chrome
浏览器交互。

扩展允许您通过使用 API 修改浏览器行为和访问 Web 内容来“扩展”浏览器。

基于上面情况,各浏览器的扩展程序可以帮助我们实现一键操作。
以谷歌浏览器为例:
谷歌扩展程序官网需要科学上网才可以访问。
下面是别人翻译的网站:中文的扩展程序网址.

编写扩展程序

初始化

  1. 在项目中创建一个文件夹 ,例如:
    在这里插入图片描述
  2. 文件夹内创建扩展程序配置json文件,文件名manifest。
    在这里插入图片描述

值得一提的是,如果你是使用的vscode。可以查找下相关插件,
我安装了 Chrome Extension Manifest JSON Schema 。
没找到 相关扩展程序api插件。。

  1. 编写配置文件manifest。
    下面图是一个简单的配置,更多配置请到官网了解详情。
    在这里插入图片描述

  2. 浏览器加载扩展程序。
    首先找到扩展程序列表页
    在这里插入图片描述
    打开开发者模式,就可以加载扩展程序了。点击后会让你选择文件夹 ,就选择刚才创的那个文件夹,我的是showBlock。
    不出意外的话,成功!
    在这里插入图片描述

  3. 然后固定 我们的扩展程序。
    在这里插入图片描述

编写交互弹窗页 和逻辑

交互弹窗本质就是一个html页面。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>哈哈</title>
  <style>
    * {
      padding: 0;
      margin: 0;
    }

    .box {
      width: 300px;
      height: 300px;
      overflow: hidden;
    }

    .btn {
      margin-top: calc(50% - 20px);
      margin-left: calc(50% - 50px);
      width: 100px;
      height: 40px;
      line-height: 40px;
      text-align: center;
      border-radius: 10px;
      cursor: pointer;
      outline: 1px solid #eaeaea;

    }

    .btn:hover {
      font-weight: bold;
      outline: 1px solid red;
    }
  </style>
</head>

<body>
  <div class="box">
    <div class="btn">显示页面元素外框</div>
  </div>
  <script type="text/javascript" src="index.js"></script>

</body>

</html>

脚本index.js逻辑:
1.绑定按钮事件
2.编写显隐当前tab页的div的样式逻辑。
3. 通过扩展程序特定的api 查找当前tab页id,以及将css样式内容追加到当前tab页。

const btnDom = document.querySelector(".btn");
btnDom.addEventListener("click", async (e) => {
  let str = e.target.innerText;
  //  查询当前页面id
  let [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
  let cssStr = " div {outline:1px solid red !important;}";
  console.log(e, str, str === "显示页面元素外框");
  if (str === "显示页面元素外框") {
    btnDom.textContent = "隐藏页面元素外框";
    // chrome.scripting.executeScript({
    //   target: { tabId: tab.id },
    //   func: show,
    //   args:{isShow:true}
    // });
    //  将css样式内容 添加到当前tab页
    chrome.scripting.insertCSS({
      target: { tabId: tab.id },
      css: cssStr,
    });
  } else {
    btnDom.textContent = "显示页面元素外框";
    //  将添加的css样式内容 从当前tab页删除
    chrome.scripting.removeCSS({
      target: { tabId: tab.id },
      css: cssStr,
    });
  }
});
function show(isShow) {
  if (isShow) window.console.log("显示外框");
  else window.console.log("隐藏外框");
}

效果

更改内容的本地扩展程序不用删除再添加,他会自动更新。
在这里插入图片描述

在这里插入图片描述

结语

至此,一个简单的谷歌扩展程序就做好了。如果你用其他的浏览器,请查看其他浏览器扩展程序的官网。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/13876.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

婚恋交友app开发中需要注意的安全问题

前言 随着移动设备的普及&#xff0c;婚恋交友app已经成为了人们生活中重要的一部分。但是&#xff0c;这些应用的开发者需要确保应用的安全性&#xff0c;以保护用户的隐私和数据免受攻击。本文将介绍在婚恋交友app开发中需要注意的安全问题。 在当今数字化时代&#xff0c;…

程序员面试完之后,人麻了...

去面试吧 面不被录用的试 面hr为了完成任务的试 面一轮二轮没有下文试 面需要通勤2小时的试 面随时加班的试 ...... 今年的“金三银四”被网友们称为“铜三铁四”&#xff0c;招聘软件上的岗位都能背下来了&#xff0c;简历却依然石沉大海。 好不容易等来个回复&#xff…

Linux常用命令——iptables命令

在线Linux命令查询工具 iptables Linux上常用的防火墙软件 补充说明 iptables命令是Linux上常用的防火墙软件&#xff0c;是netfilter项目的一部分。可以直接配置&#xff0c;也可以通过许多前端和图形界面配置。 补充说明 - 语法选项基本参数 - 命令选项输入顺序工作机制…

借由Net5.5G,看到运营商的新沧海

我们都记得这样一句诗&#xff1a;“东临碣石&#xff0c;以观沧海”。 想要看到沧海的壮阔波澜&#xff0c;就先要抵达碣石山这样可以看到大海的地方。在数字化的发展过程中&#xff0c;往往一个技术或产业趋势就是一座碣石山&#xff0c;借由它可以看到描绘着未来机遇的新沧海…

如何使用JMeter和Ant生成高效测试报告?

Jmeter接口自动化测试项目实战视频教程地址&#xff1a;https://www.bilibili.com/video/BV1e44y1X78S/? 目录&#xff1a;导读 引言 一、安装ant 二、ant关联jmeter工具 三、执行 结语 引言 你曾经在进行软件测试时遇到过测试结果难以分析&#xff0c;甚至花费大量时间…

【技巧】如何在微信与企业微信端实现自动化ChatGPT智能机器人服务?(WorkTool)

场景描述 对于使用企业微信办公协作的公司/团体/组织等&#xff0c;在工作的时候&#xff0c;经常需要通过群机器人的方式&#xff0c;回答群内成员的问题。 基于此&#xff0c;一些企业想要将ChatGPT的智能对话能力与企业微信群机器人的回复能力结合&#xff0c;在企业微信群…

【LeetCode: 354. 俄罗斯套娃信封问题 | 暴力递归=>记忆化搜索=>动态规划+二分】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

ClickHouse快速入门

目录 1 ClickHouse介绍1.1 ClickHouse 的特点1.1.1 列式存储1.1.2 DBMS 的功能1.1.3 多样化引擎1.1.4 高吞吐写入能力1.1.5 数据分区与线程级并行1.1.6 性能对比 2 数据类型2.1 整型2.2 浮点型2.3 布尔型2.4 Decimal 型2.5 字符串2.6 枚举类型2.7 时间类型2.8 数组 3 表引擎3.1…

【Linux】6、在 Linux 操作系统中安装软件

目录 一、yum 命令二、安装 wget 一、yum 命令 类似 Linux 中的应用商店 &#x1f4c3;① yum 是 RPM 软件包管理器 ✏️ Red-Hat Package Manager &#x1f4c3;② yum 用于自动化安装、配置 Linux 软件&#xff08;可自动解决依赖问题&#xff09; &#x1f4c3;③ 语法&a…

十个超级好用的Javascript技巧

概览&#xff1a;在实际的开发工作过程中&#xff0c;积累了一些常见又超级好用的Javascript技巧和代码片段&#xff0c;包括整理的其他大神的JS使用技巧&#xff0c;今天筛选了10个&#xff0c;以供大家参考。 动态加载JS文件 在一些特殊的场景下&#xff0c;特别是一些库和…

再也不去字节跳动面试了,6年测开经验的真实面试经历.....

前几天我朋友跟我吐苦水&#xff0c;这波面试又把他打击到了&#xff0c;做了快6年软件测试员。。。为了进大厂&#xff0c;也花了很多时间和精力在面试准备上&#xff0c;也刷了很多题。但题刷多了之后有点怀疑人生&#xff0c;不知道刷的这些题在之后的工作中能不能用到&…

图表示学习算法学习

struc2vec: Learning Node Representations from Structural Identity learning latent representations for the structural identity of nodes. &#xff1a; 从结构特征中学习节点潜在表示 node representation : 节点表示 structural identity : 结构特征 struct2Vec是一个…

文件系统和动静态库

目录 再识文件属性 查看文件属性的原理 初识inode 了解磁盘 什么是磁盘 磁盘的结构 磁盘的存储结构 CHS寻址 磁盘的逻辑结构 使用LBA地址的意义 理解文件系统 页框和页帧 分治思想管理 Linux ext2文件系统 软硬链接 软链接 硬链接 文件的三个时间 动静态库 …

面对市场内卷,不同品牌应该如何做客户增长?

后疫情时代&#xff0c;我国新生人口减少、人口老龄化加剧&#xff0c;chatgpt火爆和AI替代论盛行&#xff0c;市场上&#xff0c;口红效应依旧繁荣&#xff0c;消费者的延迟满足、替代性满足成为常见心理&#xff0c;面对宏观的不确定性&#xff0c;人们在消费上更需要确定性的…

ES6 块级作用域

ES6之前没有块级作用域&#xff0c;ES5的var没有块级作用域的概念&#xff0c;只有function有作用域的概念&#xff0c;ES6的let、const引入了块级作用域。 ​ ES5之前if和for都没有作用域&#xff0c;所以很多时候需要使用function的作用域&#xff0c;比如闭包。 1.1.1 什么…

Vue3技术6之toRef和toRefs、shallowReactive与shallowRef、readonly与shallowReadonly

Vue3技术6 toRef和toRefstoRefApp.vueDemo.vue toRefsApp.vueDemoTwo.vue 总结 shallowReactive与shallowRefshallowReactiveApp.vueDemo.vue shallowRefDemo.vue 总结 readonly与shallowReadonlyApp.vueDemo.vueDemoTwo.vue总结 toRef和toRefs toRef App.vue <template&…

工信部第369批新品公示冷藏车占比显著提升,新能源“卡位战”已悄然打响

一、冷藏车行业概述 随着货物储运的种类不断增多&#xff0c;有些货物在储运过程中易受到外界温度、湿度等条件影响而发生腐烂变质。为了保持易腐货物的本来品质和使用价值&#xff0c;在运输途中不发生腐烂变质和数量上的短缺&#xff0c;提高货物运输的安全性&#xff0c;减…

163种中草药(中药材)数据集说明(含下载地址)

163种中草药(中药材)数据集说明(含下载地址) 目录 163种中草药(中药材)数据集说明(含下载地址) 1. Chinese-Medicine-163数据集说明 2. Chinese-Medicine-163数据集下载 3. 深度学习实现中草药(中药材)识别 本文将分享一个大规模的中草药(中药材)图片数据集(Chinese-Medic…

【linux】linux入门级别指令

一些基础指令 前言用户登录新建用户 ls指令pwd命令cd 指令which指令alias指令touch指令mkdir指令rmdir指令 && rm 指令rmdirrm man指令cp指令mv指令catmoreless指令head 指令tail指令输出重定向时间相关的指令cal指令find指令grep指令zip/unzip指令tar指令bc指令uname指…

计及源荷不确定性的综合能源生产单元运行调度与容量配置优化研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…