Chrome扩展插件的开发--获取网页Cookies

Chrome浏览器在浏览器类应用软件中一直居于榜首,很多人选择Chrome浏览器不仅仅是因为它的稳定,还有它丰富的可拓展性。那么有没有想自己开发一款自己的谷歌浏览器插件呢?本文将介绍大家手动开发一个谷歌浏览器插件获取cookies.

1.Chrome插件开发文档

https://developer.chrome.com/docs/extensions/mv3/

2.官网入门demo

Hello Extensions

3.getCookies

·       manifest.json

开发插件必须提供该文件,用来配置插件所有的必要信息,比如插件名字、描述、版本号、图标等;

·       插件弹窗popup

点击插件图标会弹出一个窗体,这个窗体就是 popup 。在 manifest.json 的 action 字段配置 popup, 其中 default_popup 指定点击 popup 后显示的 html 内容,路径位置相对于配置文件,另外default_icon设置的是扩展插件图片,路径位置相对于配置文件;

// manifest.json继续配置action

{

...

"action": {

"default_popup": "popup.html",

"default_icon": "hello_extensions.png"

}

}

// popup.html
<html>
<head>
  <style>
    #container {
      width: 200px;
      word-break: break-all;
    }
  </style>
</head>
<body>
<div id="container"></div>
<script src="./script/popup.js"></script>
</body>
</html>
 

·       权限配置

获取cookies需要先在manifes.json中添加对应权限;host_permissions中设置哪些网站下该插件可以获取 permissions 里列举的权限;

{
    ...
    "host_permissions": [
        "http://*/*",
        "https://*/*"
    ],
    "permissions": [
        "cookies",
        "tabs"
    ]
}
 

·       popup.js

在开发插件时,不能将 js 代码直接写在 html 文件里,否则会报错,必须要单独新建一个 js 文件,然后通过 script 标签引用该文件;通过在popup.js内调用chrome获取cookies的API来获取所访问网页的cookies,并把结果展示到popup.html弹窗内部;

const $container = document.getElementById('container')
 
// DOMContentLoaded 监听当前页面的HTML加载完成
document.addEventListener('DOMContentLoaded', () => {
    // chrome.tabs 读取浏览器已打开的tab页签,其中'active': true访问到的是当前所处的标签页
    // WINDOW_ID_CURRENT 当前标签页id
    chrome.tabs.query({ 'active': true, 'windowId': chrome.windows.WINDOW_ID_CURRENT },
        function (tabs) {
            console.log('什么是tabs===',chrome, tabs)
            const url = new URL(tabs[0].url)
            chrome.cookies.getAll({
                domain: url.host
            }, (cookies) => {
                cookies.map((c) => {
                    const divEle = document.createElement("div")
                    const keyEle = document.createElement("span")
                    keyEle.setAttribute('class', 'cookiesName')
                    const valueEle = document.createElement("span")
                    valueEle.setAttribute('class', 'cookiesValue')
                    keyEle.innerHTML = c.name + ": "
                    valueEle.innerHTML = c.value
                    divEle.appendChild(keyEle).appendChild(valueEle)
                    $container.appendChild(divEle)
                })
            })
        }
    );
})

4.插件在chrome浏览器内导入使用

·       打开chrome的插件管理页面chrome://extensions

·       打开该页面右上角的开发者模式

·       点击加载已解压的扩展程序,上传本地文件即可导入插件

·       点击浏览器右上角扩展程序图标可以将自己的插件固定到浏览器顶部

5.相关API

chrome.cookies

chrome.tab

Chrome扩展插件的开发--获取网页Cookies的更多相关文章

  1. Chrome扩展之css used 获取网页样式

    地址栏输入: chrome://extensions/ 然后获取更多扩展程序,得到css used 复制html节点 最后点击 "css used" 把样式全部复制下来即可 (记住 ...

  2. Chrome扩展及应用开发

    Chrome扩展及应用开发(电子书) http://www.ituring.com.cn/minibook/950 文档 官方 https://developer.chrome.com/extensi ...

  3. 认识Chrome扩展插件

    1.前言 现如今的时代,绝大多数人都要跟浏览器打交道的,说到浏览器那肯定是Chrome浏览器一家独大,具体数据请看 知名流量监测机构 Statcounter 公布了 7 月份全球桌面浏览器市场份额,主 ...

  4. 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单   手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩 ...

  5. 自制Chrome扩展插件:用于重定向js

    前言 作为一个前端开发, 在调试生产环境的代码时,是否苦于生产环境代码被压缩,没有sourcemap? 有没有想过将生产环境的js直接重定向为本地开发环境的js? 玩微前端时,有没有想过用本地的子应用 ...

  6. BlazeMeter发布chrome扩展插件,支持JMeter脚本创建

    BlazeMeter发布chrome扩展插件,支持JMeter脚本创建http://www.automationqa.com/forum.php?mod=viewthread&tid=3898 ...

  7. 【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序

    关于 chrome 扩展的文章,很久之前也写过一篇.清除页面广告?身为前端,自己做一款简易的chrome扩展吧. 本篇文章重在分享一些制作扩展的过程中比较重要的知识及难点. 什么是 chrome 扩展 ...

  8. ----转载----【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序

    关于 chrome 扩展的文章,很久之前也写过一篇.清除页面广告?身为前端,自己做一款简易的chrome扩展吧. 本篇文章重在分享一些制作扩展的过程中比较重要的知识及难点. 什么是 chrome 扩展 ...

  9. 那些离不开的 Chrome 扩展插件

    虽然Chrome浏览器是个吃内存的怪兽,但是,它却因为启动速度.调试功能等成为了程序猿的必备浏览器!今天有时间,整理一下自己最常用的一些Chrome扩展吧: 常用网页浏览非开发类扩展: Tamperm ...

  10. Chrome扩展插件流程

    一.浏览器插件基础步骤: 1.文件最基础的配置 : 一个manifest文件.一个或多个html文件.可选的一个或多个javascript文件.可选的任何需要的其他文件,例如图片:在开发应用(扩展)时 ...

随机推荐

  1. Top cluster 树分块

    写点基础的东西.随便写的,勿喷. top cluster 一个 cluster 是一个联通子图,且至多有两个点与其他部分连接 这两个点被称为 boundary node 其余点被称为 internal ...

  2. yb课堂 前端项目目录结构创建和讲解 《三十三》

    安装包 cnpm install node-sass --save-dev 启动项目:cnpm run serve 目录结构介绍 创建新目录:api/route/views 默认资源文件介绍 asse ...

  3. 数据库中的空值处理(reader.IsDBNull(index))

    数据库中空值的处理 -> 准备一张新表 create table nullTable ( id int primary key, name nvarchar(10) ) insert into ...

  4. 《从零开始学习Python爬虫:顶点小说全网爬取实战》

    顶点小说 装xpath helper GitHub - mic1on/xpath-helper-plus: 这是一个xpath开发者的工具,可以帮助开发者快速的定位网页元素. Question:加载完 ...

  5. 历代iPhone及Android手机的屏幕参数对比

    手机逻辑分辨率Point,也就是CSS像素,是进行网页适配的关键,以下是平时整理的一些备忘录数据,可以收藏. 屏幕清晰度分类 SD标清 HD高清(2倍屏) FHD全高清(3倍屏) QHD倍高清(4倍屏 ...

  6. 学习笔记--Java方法中的注意事项

    Java方法中的注意事项 方法调用 Java的方法在同一个类中调用,可以省略 类名. /* 方法调用 */ public class MethodTest03{ public static void ...

  7. centos7 最小化安装yum不能安装软件解决方案

    慕课网神思者老师课常资料带的布署工具中,自带的liunx 系统centos7 yum发现不能安装软件,比如docker   解决方案 首先我们安装好虚拟机启动系统centos7 尝试安装任何软件都会报 ...

  8. Known框架实战演练——进销存财务管理

    本文介绍如何实现进销存管理系统的财务对账模块,财务对账模块包括供应商对账和客户对账2个菜单页面.供应商和客户对账字段相同,因此可共用一个页面组件类. 项目代码:JxcLite 开源地址: https: ...

  9. Jmeter函数助手30-groovy

    groovy函数用于脚本执行. 表达式评估:填入Apache Groovy脚本(不是文件名).本身包含逗号的参数值应根据需要进行转义'\,' 存储结果的变量名(可选) 1.引用变量进行截取字符处理 $ ...

  10. 【Layui】11 滑块 Slider

    文档地址: https://www.layui.com/demo/slider.html 基本滑块: <fieldset class="layui-elem-field layui-f ...