首页 > 其他分享 >Chrome扩展插件的开发--获取网页Cookies

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

时间:2022-10-30 10:55:05浏览次数:100  
标签:插件 popup 浏览器 cookies Chrome Cookies chrome tabs

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设置的是扩展插件图片,路径位置相对于配置文件;

0f784f69bc67688776732934013f30bd.png

// manifest.json继续配置action

{

      ...

      "action": {

          "default_popup": "popup.html",

          "default_icon": "hello_extensions.png"

      }

}

93cf9464dc96e6db81d2256c7197889a.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 里列举的权限;

99feb90078fe600d0aa19a96571153d3.png

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

 

 

·       popup.js

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

c5a6788f8c045b6ffab6b999ee1fc1bc.png

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

 

标签:插件,popup,浏览器,cookies,Chrome,Cookies,chrome,tabs
From: https://www.cnblogs.com/kaigejava/p/16840718.html

相关文章

  • javascript:监控video全屏时取消静音(chrome 107.0.5304.87)
    一,js代码:<html><head><metacharset="utf-8"/><title>测试</title></head><body><divstyle="width:50%;height:100%;float:left;margin-left:-0.3px;pos......
  • React实用插件收集
    1、react-img-editor图片编辑demo:npminstallreact-img-editor-S引入和使用importReactImgEditorfrom'react-img-editor'import'react-img-editor/assets/in......
  • Vue3——自定义组件-插件
    Vue3自定义指令插件官网链接:https://cn.vuejs.org/guide/reusability/custom-directives.html#introduce1.自定义指令:1.1自定义指令声明局部声明:constfocus={......
  • Qt应用程序接口和插件的创建详细过程
    Qt应用程序接口:包含类定义的头文件(*.h),该类定义中一般只包含纯虚函数的声明。Qt应用程序插件:继承自指定类和接口的C++类,该类实现了接口中定义的纯虚函数。 ------------......
  • VScode必备插件
    VScode必备插件1、外观相关MaterialIconTheme-文件图标GithubDarkClassictheme-Github经典暗黑主题ChineseLanguagePack-中文翻译包2、前端相关Auto......
  • STARLIMS VSCode插件
    地址:https://github.com/mariuspopovici/starlimsvscode功能:EnterpriseDesigner(应用程序、数据源、服务器脚本和客户端脚本)的Explorer将STARLIMS代码的副本下载到......
  • Terraform 语法 provider插件
     语法是terraform最重要的一点,有两个部分来讲解,第一部分是基础,第二部分是更加高级的扩展。后面各种实践其实就是对terraform语法编写。第一部分是provider插件,provider提供......
  • 如何在html中引入DPlayer.js视频播放插件,以及任何使用DPlayer.js插件
    主要用到了实现了:视频播放 、监听开始、结束、暂停、播放时间、切换视频官方文档:http://dplayer.js.org github:https://github.com/whiskyma/gulp-demo截图如下:html......
  • 【Vue2.0学习】—插件(五十六)
    【Vue2.0学习】—插件(五十六)scoped样式作用:让样式在局部生效,防止冲突写法:​​<stylescoped></style>​​......
  • 虎牙直播插件
    前言最近无聊看直播,虎牙广告是真多,还有一堆ghs直播间经常出现在首页,不想看到这些直播间,于是想办法屏蔽直播间。源码地址插件地址演示下面先看看未安装插件之前虎牙......