浏览器开发者工具(Developer Tools)详解

 作为一名前端开发人员,熟练应用浏览器开发工具很重要。笔者在这方面的知识未成体系,最近在跟着chorme官方文档学习,于是整理了本文,如有不足,欢迎指正。

目录

1.elements(元素)

2.console(控制台)

3.sources(源代码/来源)

作用

1.查看文件&2.编辑css/js

3.创建&保存js代码段(snippets)

4.调试JS

5.设置一个工作区 (Workspace),以便将在 DevTools 中所做的更改保存到文件系统上的代码中。

其他部分

overrides(替换)

content scripts(内容脚本)

4. network(网络)

作用

1.记录网络活动

2.模拟多种网络情况

3.查看页面在加载时随时间的变化情况

4.和source/‘源代码’部分“联动”

本文将讲解dev tools的前4部分:

elements(元素)、console(控制台)、sources(源代码/来源)、network(网络)

其中前两个(elements、console)较为简单且常用,所以不再过多赘述,只做基本讲解

1.elements(元素)

简介:让你看到一个 DOM 树的全部相关信息,并允许你检查以及在传输过程中编辑 DOM 元素。当你需要确认页面某些方面的 HTML 代码段时,你会经常访问元素标签。

这里着重说一下平时比较少见(或我没见过: <)的用法:

1.查看元素属性:在右侧的properties

这里注意:自身的属性是粗体,继承的属性是非粗体

2.几种css的特殊情况:

1)选择器颜色深浅来表示选择器是否匹配:

2.console(控制台)

chorme文档写到,Console(控制台)的主要作用有两个:

1.查看记录的消息(logged messages)

2.运行JS

3.sources(源代码/来源)

source 面板可分为三部分:

1.文件导航器窗格。此处列出了页面请求的每个文件。

2.代码编辑器窗格。在“文件导航器”窗格中选择文件后,该文件的内容将显示在此处。

3.js调试窗格。用于检查页面 JavaScript 的各种工具

作用

chorme文档写到,sources的主要作用有:

1.查看文件

2.编辑css/js

3.创建并保存js代码段(snippets),您可以在任何页面上运行它。代码段(snippets)类似于小书签。

4.调试js

5.设置一个 Workspace,以便将您在 DevTools 中所做的更改保存到文件系统上的代码中。

接下来我们详细讲解这5部分

1.查看文件&2.编辑css/js

可在‘Page’查看页面已加载的文件,

其中:

1.top代表一个html框架,代表主框架文档

2.第二层代表一个源(origin)

3.第三层以及下面代表从当前源(origin)加载的目录和资源

点开具体的文件,就可以直接进行编辑,并可以生效,但是重新加载页面时,这些更改不会被保存

3.创建&保存js代码段(snippets)

上文我们说到,如果直接修改js文件,只会暂时生效,那么如何保存&运行自定义的代码片段呢?这里我们就用到了代码段(snippets)

我们在snippets中插入下面这段代码并运行

// 修改p标签的内容为'Hello, Snippets!'
console.log('Hello, Snippets!');
document.body.innerHTML = '';
const p = document.createElement('p');
p.textContent = 'Hello, Snippets!';
document.body.appendChild(p);

源页面&运行代码段后的代码

当我们刷新完页面后,对应的代码段并不会消失,依旧在snippets中。

4.调试JS

我们可以在这里使用断点调试代码,详见:https://developer.chrome.com/docs/devtools/javascript/

5.设置一个工作区 (Workspace),以便将在 DevTools 中所做的更改保存到文件系统上的代码中。

详见:https://developer.chrome.com/docs/devtools/workspaces/

其他部分

source除了上文提到的几部分之外,还有一些其他部分(overrides、content scripts),这里我们进行简单的讲解,不再过多延伸

overrides(替换)

他的作用大致如下:

通过overrides,您可以创建一个与原始文件相对应的副本,并在副本中进行修改。这些修改仅应用于DevTools中,不会影响原始文件。这对于调试和实时预览样式和脚本更改非常有用,而无需手动更改文件并刷新网页。

例如,您可以修改CSS样式表,添加/删除样式或更改元素的布局,以查看样式更改后的效果。类似地,您可以修改JavaScript脚本,更改函数的行为或添加调试日志语句。

使用overrides,您可以对页面进行实时调试和修改,而无需更改原始文件。这使得调试和开发过程更加高效和灵活。

content scripts(内容脚本)

这个content script(内容脚本)感觉和snippets(代码段)很像,于是去查了下他们的区别:

DevTools的content script和snippets在功能和使用方式上有一些区别:

  1. Content Script(内容脚本):

    • Content script是在DevTools中与正在调试的页面之间通信的机制。
    • 它可以注入到正在调试的页面中,并与页面的DOM和JavaScript API进行交互。
    • Content script可以访问和操作页面的DOM,捕获事件,修改样式和行为等。
    • Content script可以与DevTools面板中的其他组件进行通信,例如扩展的UI面板、Console面板和Elements面板。
    • Content script运行在页面的上下文中,而不是DevTools的JavaScript环境中。
    • 通过消息传递机制,可以在DevTools和content script之间发送和接收消息。
  2. Snippets(代码片段):

    • Snippets是DevTools中的一个功能,允许您编写、编辑和运行JavaScript代码片段。
    • Snippets是在DevTools中直接运行的独立的JavaScript代码片段,而不是在页面的上下文中运行。
    • 您可以在Snippets面板中创建和保存多个代码片段,并在需要时运行它们。
    • Snippets面板提供了丰富的开发工具,例如代码编辑器、断点、调试功能和代码执行结果的查看。
    • Snippets可以访问和操作DevTools的API和功能,例如Console API、Network API等。
    • Snippets通常用于调试和测试特定的JavaScript代码,或者执行一些与页面无关的任务。

总结: Content script是在页面上下文中与页面进行交互的脚本,而Snippets是在DevTools中运行的独立的JavaScript代码片段。它们的用途和功能有所不同,Content script主要用于页面调试和与页面交互,而Snippets主要用于开发者在DevTools中编写和运行独立的JavaScript代码片段。

4. network(网络)

这部分笔者平时接触的比较多,但是在学了官方文档后才发现这部分的功能比笔者平时使用的功能多了好多。

作用

由于这部分相关功能较多,笔者在此只罗列几部分比较重要的,其余可自行查阅官方文档https://developer.chrome.com/docs/devtools/network/reference。

1.记录网络活动

2.模拟多种网络情况

3.查看页面在加载时随时间的变化情况

4.和source/‘源代码’部分“联动”

1.记录网络活动

这部分相信大家都不陌生,我们可以在网络面板中查看网络请求的各种基本情况:请求类型、协议、状态等等。

除了网络面板默认展示的网络请求信息,我们还可以在标题栏(图中绿色部分)点击鼠标右键,可以选择要展示的网络请求信息。

2.模拟多种网络情况

还可以模拟不同种类的网络请求状况:集体操作见下图

3.查看页面在加载时随时间的变化情况

笔者看文档看到这个功能的时候有被惊到(之前有一次自己搞项目的时候就想着能不能捕获页面在不同时间的加载状态,没想到在这里碰上了),具体打开方式见下图:

打开之后就可以看到每个时间段设计的网络请求以及对应的页面加载情况了

4.和source/‘源代码’部分“联动”

按照下图中操作,就可以在网络面板中查看source对应文件资源相关的请求了


除此之外,网络面板的‘启动器’,点击后可以跳转到‘source’面板中引发该网络请求请求的源代码

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

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

相关文章

逻辑斯蒂回归-建模概率计算(鸢尾花)

导入的数据说明 因为气候不同&#xff0c;造就性不同&#xff0c;统计鸢尾花的关键特征数据&#xff1a;花萼长度、花萼宽度、花瓣长度&#xff0c;花瓣宽度 植物学家划分&#xff1a; setosa(中文名&#xff1a;山鸢尾) versicolor(中文名&#xff1a;杂色鸢尾) virginica(中…

React学习计划-React16--React基础(三)收集表单数据、高阶函数柯里化、类的复习

1. 收集表单数据 包含表单的组件分类 受控组件——页面中所有输入类的DOM,随着输入&#xff0c;把值存维护在状态里&#xff0c;需要用的时候去状态里取值&#xff08;推荐&#xff0c;避免了过渡使用ref&#xff09;非受控组件——页面中所有输入类的DOM&#xff0c;现用现取…

高级算法设计与分析(五) -- 回溯法

系列文章目录 高级算法设计与分析&#xff08;一&#xff09; -- 算法引论 高级算法设计与分析&#xff08;二&#xff09; -- 递归与分治策略 高级算法设计与分析&#xff08;三&#xff09; -- 动态规划 高级算法设计与分析&#xff08;四&#xff09; -- 贪心算法 高级…

LED电子屏幕正迎来人屏互动技术

随着科技的不断进步&#xff0c;LED电子屏幕正迎来人屏互动技术的未来。传统LED电子屏幕一直以来只是作为显示器&#xff0c;实现单向传播&#xff0c;缺乏人群互动和观众参与的乐趣。然而&#xff0c;随着LED显示屏厂家技术的不断创新&#xff0c;LED电子屏幕正在摆脱单向传播…

C++基础语法总结

C使用 C的源文件扩展名是&#xff1a;cppC程序的入口是main函数C完全兼容c语言的语法 1、cin、cout C中常使用cin、cout进行控制台的输入和输出 #include <iostream> using namespace std;int main() {cout << "hello world !!!" << endl;retu…

如何设计更优雅的 React 组件?

在日常开发中&#xff0c;团队中每个人组织代码的方式不尽相同。下面我们就从代码结构的角度来看看如何组织一个更加优雅的 React 组件&#xff01; 1. 导入依赖项 我们通常会在组件文件顶部导入组件所需的依赖项。对于不同类别的依赖项&#xff0c;建议对它们进行分组&#…

Django(二)

1.django框架 1.1 安装 pip install django3.21.2 命令行 创建项目 cd 指定目录 django-admin startproject 项目名mysite ├── manage.py [项目的管理工具] └── mysite├── __init__.py├── settings.py 【配置文件&#xff0c;只有一部分…

在Portainer创建Nginx容器并部署Web静态站点实现公网访问

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;…

大数据---34.HBase数据结构

一、HBase简介 HBase是一个开源的、分布式的、版本化的NoSQL数据库&#xff08;即非关系型数据库&#xff09;&#xff0c;依托Hadoop分布式文件系统HDFS提供分布式数据存储&#xff0c;利用MapReduce来处理海量数据&#xff0c;用Zookeeper作为其分布式协同服务&#xff0c;一…

虚拟机安装CentOS7并配置共享文件夹

一、虚拟机安装CentOS7并配置共享文件夹 二、CentOS 7 上hadoop伪分布式搭建全流程完整教程 三、本机使用python操作hdfs搭建及常见问题 四、mapreduce搭建 五、mapper-reducer编程搭建 六、hive数据仓库安装 一、虚拟机安装二、centos系统安装三、共享文件夹配置 一、虚拟机安…

C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# 方法

C# 入门基础知识 - 方法 第8节 方法8.1 C# 函数/方法简介8.2 方法的声明及调用8.2.1 参数列表方法的声明及调用8.2.2 参数数组方法的声明及调用8.2.3、引用参数与值参数 8.3 静态方法和实例方法8.3.1 静态、实例方法的区别8.2.3 静态、实例方法的声明及其调用 8.4 虚方法8.4.1 …

“智”绘出海新航道,亚马逊云科技携手涂鸦智能助力智能家居企业全球化

随着人工智能、5G等技术的快速发展&#xff0c;智能家居行业呈现高速发展的态势。Statista数据显示&#xff0c;2022年全球智能家居行业支出总值为1145亿美元&#xff0c;欧美地区以较早的智能家居普及率&#xff0c;率先进入全屋智能时代&#xff0c;其中欧盟区国家家用智能设…

大规模采用奇点临近?Web3应用爆发离不开这个“支撑”赛道

作者&#xff5c;Jason Jiang 数据是当今世界最具价值的资源&#xff0c;也是数字掘金的必争之地。尽管Web3迄今仍有诸多争议&#xff0c;但随着铭文、Gamefi、DeFi等链上生态的多样化发展&#xff0c;我们正身处Web3应用爆发的洪流之中&#xff0c;区块链数据赛道也因此备受关…

LLM微调(四)| 微调Llama 2实现Text-to-SQL,并使用LlamaIndex在数据库上进行推理

Llama 2是开源LLM发展的一个巨大里程碑。最大模型及其经过微调的变体位居Hugging Face Open LLM排行榜&#xff08;https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard&#xff09;前列。多个基准测试表明&#xff0c;就性能而言&#xff0c;它正在接近GPT-3.5…

vue 简单实现购物车:商品基础信息最终的 html 文件 + 商品计数器的组件处理,实现了购物车;

购物车实现过程&#xff1a; Ⅰ、商品购物车作业需求&#xff1a;1、商品购物车页面示例&#xff1a;2、具体需求&#xff1a; Ⅱ、html 文件的构建&#xff1a;商品购物车.html Ⅲ、组件文件的构建&#xff1a;商品购物车1.js Ⅳ、小结&#xff1a; Ⅰ、商品购物车作业需求&am…

TypeScript实战——ChatGPT前端自适应手机端,PC端

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 可以在线体验哦&#xff1a;体验地址 文章目录 前言引言先看效果PC端手机端 实现原理解释 包的架构目录 引言 ChatGPT是由OpenAI开发的一种基于语言模型的对话系统。它是GPT&#xff08;…

Java智慧工地源码 SAAS智慧工地源码 智慧工地管理可视化平台源码 带移动APP

一、系统主要功能介绍 系统功能介绍&#xff1a; 【项目人员管理】 1. 项目管理&#xff1a;项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。 2. 人员信息管理&#xff1a;支持身份证及人脸信息采集&#…

重学设计模式-Iterator(迭代器模式)

Iterator迭代器模式 介绍&#xff1a; 迭代器模式是一种行为型设计模式&#xff0c;它允许你在不暴露集合底层表示&#xff08;并不知道集合底层使用何种方式对数据尽心存储&#xff09;的情况下遍历集合中的元素。 这种模式提供了一种方法&#xff0c;可以顺序访问一个聚合…

Leetcod面试经典150题刷题记录 —— 矩阵篇

矩阵篇 1. 有效的数独2. 螺旋矩阵Python 3. 旋转图像Python额外开辟数组空间原地置换法 4. 矩阵置零5. 生命游戏Python 1. 有效的数独 题目链接&#xff1a;有效的数独 - leetcode 题目描述&#xff1a; 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验…

管理层年终考核的四种方式

企业管理层是企业中的核心决策者&#xff0c;对企业的经营和发展有着重要的影响。因此&#xff0c;对企业管理层进行年终绩效环评可以更好地了解其对企业的贡献和影响&#xff0c;以便更好地激励和管理管理层&#xff0c;提高企业的绩效和效益。以下是适合管理层做年终考核的四…