chrome扩展结构

2023-11-02

每个打开的页面都运行在web页面环境中。一个正常的web页面环境,会先初始化css,然后建立DOM树,接着加载图片和frame等子资源,然后顺序执行所有js。

l  chrome扩展本身运行在一个进程中,称之为background环境。background环境生命周期等同于浏览器生命周期。即只要浏览器在运行,那么background环境就一直在运行。在background环境中,借助API,可以操作和修改浏览器本身的各种属性,例如Tab相关内容,cookies,history,其他扩展,浏览器外观,等等。

l  扩展通常显示在地址栏右侧,或者地址栏最后。扩展的表现往往是一个图标,加上一个页面。点击图标,页面会以气泡菜单的形式弹出。这个弹出的页面,称为popup环境。popup页面中往往包含很多对web页面的设置,例如背景色等。通过chrome的API,可以在popup环境中对页面DOM进行修改。然而这种修改往往是比较简单的。

l  为了满足对页面的DOM进行初始化大量且复杂的修改需求,扩展可以将css与js文件注入到web页面中,就像这些文件本来就被包含在web页面中一样。注入的css与js由扩展的content_script属性进行设置,称之为content_script环境。content_script环境虽然是注入到web页面中的,但仅仅与web页面共享DOM,并不会共享js变量与函数,所以不会产生命名冲突。同时,web页面引入的各种库和扩展,例如jquery等,也不会被共享。若希望在content_script中使用库,则需要单独引入。

l  另外,在扩展管理页面,提供了一个连接可以跳转到自定义的扩展设置界面。该页面称之为设置环境

总结一下:

·background环境:负责浏览器相关的操作。

·popup环境:负责扩展的显示和设置,可进行web页面修改。

·content_script环境:负责web页面的修改。

·设置环境:负责扩展本身的设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

chrome扩展结构 的相关文章

  • chrome扩展开发调试

    chrome扩展由content scripts browser actions background等多个部分组成 其中 content scripts属于注入web页面 所以在contentscripts中的console log会被正
  • (二)selenium IDE 插件下载与安装

    前面selenium已经下载安装成功 接下来尝试录制下脚本 此时有个IDE插件是必备的 1 下载Chrome插件 进入网址 https www extfans com 搜索 selenium IDE 然后下载 2 安装插件 打开Chrome
  • 使用 ChatGPT 总是出现「Something went wrong」解决方案

    1 前言 最近使用 ChatGPT 总是出现 Something went wrong If this issue persists please contact us through our help center at help ope
  • 解决Android通过chrome://inspect/调试WebView出现 HTTP/1.1 404 Not Found 的问题

    问题描述 无论是调试Web页面还是调试Hybrid混合应用 只要是调试Android的webview 都需要使用Chrome inspect进行调试 但是国内开发者会出现404 Not Found错误 原因解析 国内网络无法访问 https
  • Selenium启动Chrome时配置选项

    Selenium操作浏览器是不加载任何配置的 网上找了半天 关于Firefox加载配置的多点 Chrome资料很少 下面是关于加载Chrome配置的方法 一 加载所有Chrome配置 用Chrome地址栏输入chrome version 查
  • Jupyter远程配置

    安装Jupyter pip install jupyter 生成默认配置文件 jupyter notebook generate config 生成密钥 python gt gt gt from notebook auth import p
  • 隐藏selenium的特征

    1 chromedriver exe中的 cdc asdjflasutopfhvcZLmcfl 特征 cdc 是chromedriver exe的一个特征之一 很多网站会通过检测是否有这个特征来判断是否是selenium 解决方案 wind
  • Oracle VM VirtualBox做好虚拟硬盘后,如何进一步更改虚拟硬盘的大小

    以管理员身份打开 命令提示符窗口 然后利用命令cd进入Oracle VM VirtualBox安装目录 如下图 我进入了Oracle VM VirtualBox安装目录 D Program Files Oracle VirtualBox 然
  • 解决谷歌人机验证(Captcha)显示问题

    文章目录 前言 一 Header Editor 下载 安装与配置 1 插件下载 2 插件安装 3 插件配置 前言 由于谷歌服务在国内不可用 所以正常访问时某些网址时 经常会出现需要人机验证的问题 影响正常使用 在不使用科学上网的情况下 我们
  • chrome net::ERR_CERT_AUTHORITY_INVALID 问题

    浏览器输入 chrome net internals hsts 输入框输入你不需要安全检查的 域名 ok
  • 最详解决:jupyter notebook不会自动打开浏览器问题

    一 宝刀未老的老Amy回归之 问题描述 好久木有在 csdn 上写文章了 那是什么原因让 开摆一年 的老Amy 开写 了呢 噔噔蹬蹬 答案是 老Amy的一颗责任心 言归正传 最近替别的老师上几节课 刚好告诉大家如何安装 jupyter 以及
  • js中的navigator对象 用js判断浏览器类型

    navigator对象 window navigator返回一个navigator对象的引用 可以用它来查询一些关于运行当前脚本的应用程序的相关信息 在浏览器打印一下navigator对象 console log navigator MDN
  • xe7 安装chrome组件(CEF4Delphi)

    缘起 大屏项目需要用到chrome组件 但为了实现firemonkey的矢量和强大的图形功能 所以只能重新在xe7中安装chrome组件 碰到了一些问题 都一 一化解了 将整个过程记录下来 以供大家采用 1 下载CEF4Delphi mas
  • chrome黑暗模式设置

    1 前言 使用Chrome有很久了 但一直没发现有令人满意的黑暗模式 期间试过通过在谷歌商店中安装黑暗主题 但感觉不好 主要有以下 除了chrome的界面是黑暗模式外 打开其它的页面还是亮模式 我希望黑暗模式支持以下特性 chrome的标签
  • 最实用的chrome插件

    前言 说真的第一次看到CSDN这个插件的时候并没有感觉特别吸引我的地方 因为我个人安装了好多的插件 第二次看到CSDN插件还是因为广告上说的参赛拿奖 其实我的动机也不是很纯o o 插件地址 CSDN插件 走起 对于谷歌的插件安装方式很多 可
  • 浏览器主页被篡改360篡改浏览器主页,官方四步最完美解决办法

    以前写过一篇浏览器主页被360篡改成他们的主页的文章 那时真的就是气的直接卸载了360 之后通过修改注册表的方式 将主页修改回来 方法很暴力 由于重做了系统 360又被重新安装了回来 结果和以往一样 我的主页还是被强制修改了 但是这次我冷静
  • JAVA 【爬虫】 Selenium 无头浏览,禁止加载图片,启动参数,失效,无效

    JAVA Selenium 无头浏览 禁止加载图片 启动参数 失效 无效 可能有如下几个原因 代码问题 命令参数写错 无头浏览 headless 禁止加载图片 blink settings imagesEnabled false Chrom
  • vscode编辑器插件总结

    之前一直用webstorm webstorm确实太重了 后来无意中发现了vscode 高颜值吸引了我哈哈哈 就一直用着 很喜欢VScode的插件功能 想要什么插件就搜索 比如搜索angular 只要点击一下某款插件 插件的介绍和用法都会在右
  • 设置windos电脑开机自动启动chrome浏览器,并且打开指定网页

    需求 web项目设置windos电脑开机自动启动chrome浏览器 打开指定网页地址 并设置为全屏显示 解决 使用windos的bat脚本 设置为开机自启动 代码如下 echo off cd d dp0 title Chrome taskl
  • Chrome更新

    Chrome无法通过360软件管家升级 最方便的升级方法应该是通过Chrome本身进行升级 但可能需要自备梯子 点击Chrome右上角三个点 点击帮助 点击关于Google Chrome 在弹出的页面中查看是否是最新版本 如果不是最新版本会

随机推荐

  • 安全测试基础知识

    软件安全测试是评估和测试系统以发现系统及其数据的安全风险和漏洞的过程 没有通用术语 但出于我们的目的 我们将评估定义为分析和发现漏洞 而不尝试实际利用这些漏洞 我们将测试定义为发现和尝试利用漏洞 安全测试通常根据要测试的漏洞类型或正在执行的
  • 2.4g无线跳频(三)

    2 4g无线跳频 三 一 跳频过程分析 1 主从建立连接 开启定时器 2 对于主机 每个定时周期内 前部分处于发送模式 后部分处于接收模式 对于从机 每个定时周期内 前部分处于接收模式 后部分处于发送模式 发送时间应安排小于接收时间 3 主
  • building for iOS Simulator, but linking in object file built for iOS, for architecture arm64

    Xcode 12以及以上版本 使用模拟器编译 使用真机不会报错 或者使用真机编译会报错 使用模拟器不会报错 ld in Users xxx Documents work svn EM iOS xxx xxx WarehouseMap Ext
  • AsposeWord转pdf的正确姿势

    通过国内国外 官网不断查找 终于找到适合java的开发的方式 不管国内国外 全是C 和vb net的资料 为了让自己以后不会忘记 迭代更新一下Aspose的多样性操作 普通的 File file new File C Users a Dow
  • Thinkphp5之多语言

    给需要的人看 自己总结的 大神请勿喷 谢谢 目录结构 配置 控制器 view zh cn return array test gt 中文 name gt 萧风 cn us return array test gt English name
  • Java多线程:高并发下数据插入重复问题

    转自 微点阅读 https www weidianyuedu com 1 背景描述 应用框架 Spring SpringMVC Hibernate 数据库 Oracle11g 一家文学网站向我系统推多线程低并发推送数据 我这边观察日志和数据
  • Ubuntu 16.04 pycharm设置桌面快捷启动方式

    Ubuntu下所有的快捷方式都在 usr share applications 解压 这里我将pycharm下载并解压到了 home snakeson developer文件夹下 这里的pycharm sh是批处理执行文件 prcharm
  • linux设置定时任务(crontab)操作步骤

    1 登录服务器 2 输入密码 登录成功 3 查看定时器任务 crontab l 4 编辑定时器任务 crontab e 5 保存定时器任务 1 按住sec退出 2 按住shift 再按 wq 保存并退出 备注 按住shift 再按 q 强制
  • CSS flex布局最后一个元素的宽度铺满剩余的空间

    当你希望最后一个元素的宽度铺满剩余的空间是 你可以为他设计一下属性 flex grow 1 例子 div div class sma1 div div class sma2 div div big width 200px height 10
  • [1114]mysql-connector-java各种版本下载地址

    mysql connector java下载地址 http mvnrepository com artifact mysql mysql connector java 1 进去后选择自己的版本 2 然后再点击 需要下载其他的jar包 或者依
  • 彻底解决虚拟机浏览器设置、扩展等花屏空白不显示问题

    问题现象 在我们日常使用VirtualBox vmware workstation Hyper V虚拟机软件的时候 不知不觉我们有没有遇到这种情况 chrome浏览器或者win10 win11自带的Edge浏览器的设置栏 浏览器标签预览 浏
  • Java实现 LeetCode 575 分糖果(看看是你的长度小还是我的种类少)

    575 分糖果 给定一个偶数长度的数组 其中不同的数字代表着不同种类的糖果 每一个数字代表一个糖果 你需要把这些糖果平均分给一个弟弟和一个妹妹 返回妹妹可以获得的最大糖果的种类数 示例 1 输入 candies 1 1 2 2 3 3 输出
  • Unity Navigation详解

    Unity Navigation详解 前言 从事unity相关行业以来始终看不清自己的路该怎么走 到今天才明白不需要花时间去迷茫 只管努力莫问前程 从今天开始每天写一点小东西 记录与整理自己走过的路 也一边寻找自己的路 便从unity的自动
  • BuildaFlightTrackerwithCesiumforUnreal_译

    BuildaFlightTrackerwithCesiumforUnreal 译 这个教程会使用真实世界飞机数据控制一个飞机飞过从圣弗朗西斯科到哥本哈根 你会学到怎样 1 输入真实数据到UnrealEngine 2 使用数据和USpline
  • 活动如何造势推广?会议软件帮您忙

    会议管理者辛苦策划了一场活动 如果推广宣传跟不上 那策划的心血岂不白费 如何使用有效且高效的方法为活动推广造势呢 传统推广方式耗费人力大 成本高 但通过会议软件便可以快速推广活动并有效宣传 下面为您介绍如何使用会议软件实现有效推广 01 社
  • python开发面试题

    python基础 1 Python类中的方法类型 在Python类中有四种方法类型 分别是实例方法 静态方法 类方法和普通方法 实例方法 即对象方法 需要实例化对象之后才能调用 接受的第一个参数self就是对象本身 必须使用实例化对象才可以
  • linux 图形分区工具,Linux下的图形分区工具

    在Linux下的许多情况下 分区将不足 这时 我们将需要调整分区 Windows下有很多工具 Linux下也有 您可以使用gparted进行分区 Gparted是parted的前端 图形化 linux下分区工具 通常包含在官方资源中 可以直
  • 2020年校赛网络赛

    51假期那段时间因为水了一段时间的数模校赛 加上专业课的坑越欠越多 因而已经很久很久没有补过题目了 从近到远 先把西电校赛的坑填起来 再把之前的CF牛客Atcoder补起来 qaq C 发现交换律后就显然了 D 双指针 好像第一天晚上还有个
  • 蓝桥杯2022真题:统计子矩阵、字符统计、排列字母、顺子日期、特殊时间、三角回文数、2022、星期计算

    目录 1 统计子矩阵 2 字符统计 3 排列字母 4 顺子日期 5 特殊时间 6 三角回文数 7 2022 8 星期计算 1 统计子矩阵 import os import sys 请在此输入您的代码 n m k map int input
  • chrome扩展结构

    每个打开的页面都运行在web页面环境中 一个正常的web页面环境 会先初始化css 然后建立DOM树 接着加载图片和frame等子资源 然后顺序执行所有js l chrome扩展本身运行在一个进程中 称之为background环境 back