Chrome调试

https://developers.google.com/chrome-developer-tools/?hl=zh-CN&csw=1

另外还有许多的扩展工具很好用,关注chrome应用商店

怎样打开Chrome的开发者工具?

你可以直接在页面上点击右键,然后选择审查元素:

或者在Chrome的工具中找到:

或者,你直接记住这个快捷方式: Ctrl+Shift+I (或者Ctrl+Shift+J直接打开控制台),或者直接按F12

打开的开发者工具就长下面的样子:

不过我一般习惯与点左下角的那个按钮,将开发者工具弹出作为一个独立的窗口:

下面来分别说下每个Tab的作用。

Elements标签页

这个就是查看、编辑页面上的元素,包括HTML和CSS:

左侧就是对页面HTML结构的查看与编辑,你可以直接在某个元素上双击修改元素的属性,或者你点右键选"Edit as Html"直接对元素的HTML进行编辑,或者删除某个元素,所有的修改都会即时在页面上得到呈现。(注:看到上面右键菜单的最后一个选项"审查元素"了么?这是不是说明这个开发者工具的页面也是HTML来的呢?你点一下就知道了哦,嘿嘿
你还可以对某个元素进行监听,在JS对元素的属性或者HTML进行修改的时候,直接触发断点,跳转到对改元素进行修改的JS代码处:

Elements标签页的右侧可以对元素的CSS进行查看与编辑修改:

你还可以通过这里看到各CSS选择器设置的CSS值的覆盖情况。
下面的Metrics可以看到元素占的空间情况(宽、高、Padding、Margin神马的):

注意到上面的Properties没有?这个很有用哦,可以让你看到元素具有的方法与属性,比查API手册要方便得多哦(要注意某些方法和属性在IE、FireFox等其他浏览器下面的支持情况哦)。

Resources标签页

Resources标签页可以查看到请求的资源情况,包括CSS、JS、图片等的内容,同时还可以查看到存储相关的如Cookies、HTML5的Database和LocalStore等,你可以对存储的内容编辑和删除。
这里的CSS文件有一个好玩的特性,你可以直接修改CSS文件,并且修改即时生效哦:

Network标签页

Network标签页对于分析网站请求的网络情况、查看某一请求的请求头和响应头还有响应内容很有用,特别是在查看Ajax类请求的时候,非常有帮助。注意是在你打开Chrome开发者工具后发起的请求,才会在这里显示的哦。
点击左侧某一个具体去请求URL,可以看到该请求的详细HTTP请求情况:

我们可以在这里看到HTTP请求头、HTTP响应头、HTTP返回的内容等信息,对于开发、调试,都是很有用的。

Scripts标签页

很明显,这个标签页就是查看JS文件、调试JS代码的,直接看下图的说明:

还有你可以打开Javascript控制台,做一些其他的查看或者修改:

你甚至还可以为某一XHR请求或者某一事件设置断点:

Timeline标签页

注意这个Timeline的标签页不是指网络请求的时间响应情况哦(这个在Network标签页里查看),这个Timeline指的JS执行时间、页面元素渲染时间:

点击底部的Record就可以开始录制页面上执行的内容。(这个不熟悉,请参考文末链接)

Profiles标签页

这个主要是做性能优化的,包括查看CPU执行时间与内存占用:

这个也不熟悉,不多说,还是请参考文末链接吧。

Audits标签页

这个对于优化前端页面、加速网页加载速度很有用哦(相当与Yslow):

点击run按钮,就可以开始分析页面,分析完了就可以看到分析结果了:

它甚至可以分析出页面上样式表中有哪些CSS是没有被使用的哦:

Console标签页

就是Javascript控制台了:

这个除了查看错误信息、打印调试信息(console.log())、写一些测试脚本以外,还可以当作Javascript API查看用。
例如我想查看console都有哪些方法和属性,我可以直接在Console中输入"console"并执行:

怎么样,一目了然了吧 ?再例如我想查看日期函数都有哪些方法:

注:注意在这里看到的某些方法和属性是ES5新增的,记得兼容其他浏览器的支持情况哦

结语

Google Chrome除了简洁、快速,现在的Chrome的插件也非常的丰富了。而对于web开发者来说,Chrome对于HTML5、CSS3等一些新标准的支持也是比较完善的,而且Chrome的开发者工具我个人认为真的非常好用,这就是为什么我向web开发者推荐使用Chrome的原因。

注1:本文截图的Chrome版本为:13.0.782.215 m
注2:Chrome开发者工具更详细的说明请参考:http://code.google.com/intl/zh-CN/chrome/devtools/docs/overview.html
注3:本文原来想定的标题是:给那些因为Firebug而舍不得FireFox的朋友


其他调试技巧:

1. Beautify Javascript

js 文件在上线前一般都会压缩下, 压缩的 javascript 几乎没有可读性, 几乎无法设定断点. 在 Scripts 面板下面有个 Pretty print 按钮(这种符号 {}), 点击会将压缩 js 文件格式化缩进规整的文件, 这时候在设定断点可读性就大大提高了.

2. 查看元素绑定了哪些事件

在 Elements 面板, 选中一个元素, 然后在右侧的 Event Listeners 下面会按类型出这个元素相关的事件, 也就是在事件捕获和冒泡阶段会经过的这个节点的事件.

在 Event Listeners 右侧下拉按钮中可以选择 Selected Node Only 只列出这个节点上的事件

展开事件后会显示出这个事件是在哪个文件中绑定的, 点击文件名会直接跳到绑定事件处理函数所在行, 如果 js 是压缩了的, 可以先 Pretty print 下, 然后再查看绑定的事件.

3. Ajax 时中断

在 Scripts 面板右侧有个 XHR Breakpoints, 点右侧的 + 会添加一个 xhr 断点, 断点是根据 xhr 的 url 匹配中断的, 如果不写匹配规则会在所有 ajax, 这个匹配只是简单的字符串查找, 发送前中断, 在中断后再在 Call Stack 中查看时那个地方发起的 ajax 请求

4. 页面事件中断

除了给设定常规断点外, 还可以在某一特定事件发生时中断(不针对元素) , 在 Scripts 面板右侧, 有个 Event Listener Breakpoints, 这里列出了支持的所有事件, 不仅 click, keyup 等事件, 还支持 Timer(在 setTimeout setInterval 处理函数开始执行时中断), onload, scroll 等事件.

5. Javascript 异常时中断

Pretty print 左侧的按钮是开启 js 抛异常时中断的开关, 有两种模式:在所有异常处中断, 在未捕获的异常处中断. 在异常处中断后就可以查看为什么抛出异常了

6. DOM Level 3 Event 事件中断

在 Elements 面板, 选中一个元素右键, 有两个选项:Break on subtree modifications, Break on attributes modifications, 这两个对应 DOM Level 3 Event 中的DOMSubtreeModified , DOMSubtreeModified 事件 在 Scripts 面板 DOM Breakpoints 处会列出所有 level3 的 event 中断

7. 所有 js 文件中搜索&查找 js 函数定义

  • 在 chrome developer tool 打开的情况下, 按 ctrl + shift + F, 在通过 js 钩子查找代码位置时很有用, 查找支持正则表达式
  • 查找函数定义: ctrl + shift + o (在 Scripts panel 下)
  • 查找文件: ctrl + o  (在 Scripts panel 下)
  • 更多快捷键: 在 chrome developer tool 中按 ? 查看帮助

8. command line api

  • $(id_selector) 这个与页面是否有 jQuery 无关
  • $$(css_selector)
  • $0, $1, $2, $3, $4
    1. Elements 面板中最近选中的 5 个元素, 最后选择的是 $0
    2. 这个 5 个变量时先进先出的
  • copy(str) 复制 str 到剪切板, 在断点时复制变量时有用
  • monitorEvents(object[, types])/unmonitorEvents(object[, types])
    1. 当 object 上 types 事件发生时在 console 中输出 event 对象
  • 更多 console api 请 console.log(console) 或 点击
  • 更多 command line api 点击

9. 实时修改 js 代码生效

  • 页面外部 js 文件在 Scripts 面板中可以直接修改, 改完后按 ctrl + S 保存, 会立即生效
  • 注意
    1. 经测试不支持 html 页面中 js 修改
    2. 经过 Pretty print 格式化的脚本不支持修改

10. console 中执行的代码可断点

在 console 中输入代码的最后一行加上 //@ sourceURL=filename.js, 会在 Scripts 面板中有个叫 filename.js 的文件, 然后他就和外部 js 文件一样了

function hello() {
  alert('say hi');
}
//@ sourceURL=hello.js

<think>我们正在讨论如何用Chrome调试WebView中的内容。根据引用内容,主要涉及Android和iOS平台。下面将分平台说明调试步骤。 ### Android平台调试步骤 1. **在Android应用中启用WebView调试** 在包含WebView的Activity中,添加以下代码(通常在`onCreate`方法中): ```java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); } ``` 这段代码会为应用中的所有WebView启用调试(无论是否在WebView上设置`setWebContentsDebuggingEnabled`)[^3][^4]。 2. **连接设备并运行应用** - 通过USB将Android设备连接到开发机,并确保设备已开启USB调试模式(在开发者选项中)。 - 运行包含WebView的应用,并加载需要调试的H5页面。 3. **在Chrome调试** - 在电脑上打开Chrome浏览器,访问:`chrome://inspect/#devices`。 - 在“Devices”下找到你的设备,并看到已启用调试的WebView列表(包括应用包名和WebView的URL)。 - 点击对应WebView下方的**inspect**按钮,即可打开Chrome DevTools进行调试(与普通网页调试相同)[^1][^3]。 ### iOS平台调试步骤(使用Safari或Chrome) #### 方法1:使用Safari(官方原生支持) 1. **启用设备调试功能** - 在iOS设备的“设置”>“Safari”>“高级”中,开启**Web检查器**。 - 在Mac的Safari浏览器中,启用“开发”菜单:Safari > 偏好设置 > 高级 > 勾选“在菜单栏中显示开发菜单”。 2. **调试步骤** - 在App中打开需要调试的WebView。 - 连接设备到Mac,在Mac的Safari菜单中:选择“开发” > [设备名称] > [WebView对应的网页]。 - 使用Safari的Web检查器进行调试[^2]。 #### 方法2:使用Chrome(通过适配器) 1. **安装调试工具** 在终端执行以下命令安装必要工具: ```bash # 安装ios-webkit-debug-proxy brew install ios-webkit-debug-proxy # 安装remotedebug-ios-webkit-adapter npm install remotedebug-ios-webkit-adapter -g ``` 2. **启动适配器** 运行适配器服务(默认端口9000): ```bash remotedebug_ios_webkit_adapter --port=9000 ``` 3. **配置Chrome** - 打开Chrome,访问:`chrome://inspect/#devices`。 - 点击**Configure...**,添加地址:`localhost:9000`。 - 确保iOS设备已连接并信任电脑,在App中打开WebView。 4. **开始调试** 在`chrome://inspect`页面会显示设备上的WebView,点击**inspect**即可调试[^2]。 ### 通用调试技巧 - **实时修改**:在DevTools中修改HTML/CSS/JS并实时查看效果。 - **断点调试**:在Sources面板设置JavaScript断点。 - **网络分析**:使用Network面板监控请求。 - **控制台交互**:在Console中执行JavaScript命令(例如:`window.innerWidth`验证视图尺寸)。 > ⚠️ 注意:Android要求API 19+(KitKat)以上;iOS需使用iOS 6+和Safari 6+。 §§相关问题§§ 1. 如何在Android WebView中捕获JavaScript错误? 2. WebView调试时如何模拟不同设备尺寸? 3. 调试WebView时遇到`inspect`按钮灰色不可用怎么办? 4. WebView与原生代码交互时如何调试双向通信? [^1]: Chrome远程调试webview。TL;DR 1、在您的原生 Android 应用中启用 WebView 调试;在 Chrome DevTools 中调试 WebView。 2、通过 chrome://inspect 访问已启用调试的 WebView 列表。 3、调试 WebView 与通过远程调试调试网页相同。 [^2]: Safari/Chrome调试WebView。前言 最近在写《iOS代码调试》系列的博客,估计会有十篇以上的内容,等到都写完了会在Github以一个仓库的形式开源出来,欢迎关注我的Github: LeoMobileDeveloper WebView 大多数App会选择H5去实现某些弱交互但是却需要热更新界面,这时候WebView就派上用场了,那么如何对WebView进行调试呢? Safari 开启开发菜单 Safari -> 偏好设置 勾选“在菜单栏显示开发菜单” 设备的Safari调试 设置 -> Safari -> 高级 - > 开启Web检查器 选择要调试的网页 在App内打开对应的Webview 状态栏点击开发 -> 选择设备 -> 选择网页 然后,就可以通过safari调试这个网页了 对于iOS原生开发来说,用的做多的还是终端,比如你要测试一个WKWebView的JSBridge window.webkit.messageHandlers.bridgeName.postMessage({//data..}) 或者测试一个scheme window.location.herf="xxxxx" 建议iOS开发者学习一些JS的基本知识,这会对调试WebView大有帮助。 Chrome调试 Chrome调试比较适合写H5的同学,因为在这里可以使用类似React/Redux等插件来提高效率。 准备工作: 开启iOS设备中Safari设置的WebContent检查器确保手机被系统信任 安装:ios-webkit-debug-proxy brew install ios-webkit-debug-proxy 安装:remotedebug-ios-webkit-adapter npm install remotedebug-ios-webkit-adapter -g 运行adapter: remotedebug_ios_webkit_adapter --port=9000 接着,在App中打开包含WebView的应用,然后chrome打开如下地址 chrome://inspect/#devices 点击config 添加localhost:9000 然后,就能够看到刚刚应用中的WebView了 点击inspect,就可以用Chrome进行调试了: [^3]: Android使用Chrome调试webview中的H5界面。 2、代码中为WebView开启可调式:把如下代码加到webview所在的activity的onCreate方法中 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); } [^4]: Chrome调试WebView加载的网页。首先在要调试的项目里加入以下代码,才可开启调试 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true) }</think>### Chrome调试WebView的完整指南 在Chrome调试WebView内容需要**启用调试模式**并**连接Chrome DevTools**。以下是具体操作步骤: #### 一、Android平台调试(推荐方法) 1. **开启WebView调试模式** 在WebView所在的Activity中添加代码(API 19+): ```java // 在Activity的onCreate()方法中添加 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); // 关键代码[^3][^4] } ``` 2. **连接设备调试** - 通过USB连接Android设备到电脑 - 打开设备的**USB调试模式**(设置 > 开发者选项) - 在Chrome地址栏输入:`chrome://inspect/#devices` - 在**Devices**区域会显示已连接的设备 - 在**WebView**区域列出所有可调试的WebView实例 3. **开始调试** 点击目标WebView右侧的**inspect**按钮,即可打开Chrome DevTools进行调试(与网页调试体验相同)[^1]。 --- #### 二、iOS平台调试方法 1. **基础准备** - 在iOS设备上:设置 > Safari > 高级 > 开启**Web检查器** - 在Mac的Safari:Safari > 偏好设置 > 高级 > 勾选"在菜单栏显示开发菜单" 2. **方法1:使用Safari调试(原生支持)** - 连接iOS设备到Mac - 在App中打开WebView - 在Mac的Safari菜单:开发 > [设备名称] > 选择WebView页面 - 使用Safari的Web检查器调试[^2] 3. **方法2:使用Chrome调试(需适配器)** ```bash # 安装调试工具 brew install ios-webkit-debug-proxy npm install -g remotedebug-ios-webkit-adapter # 启动适配器 remotedebug_ios_webkit_adapter --port=9000 ``` - 打开Chrome访问:`chrome://inspect/#devices` - 点击**Configure**,添加地址:`localhost:9000` - 选择出现的WebView实例进行调试[^2] --- ### 调试功能说明 在Chrome DevTools中可执行: 1. **元素检查**:实时修改HTML/CSS 2. **控制台调试**:执行JS命令,查看`console.log()`输出 3. **网络分析**:监控所有网络请求 4. **性能分析**:检测内存泄漏和CPU使用 5. **设备模拟**:在**Device Toolbar**(Ctrl+Shift+M)测试响应式布局 > ⚠️ 注意: > - Android要求API 19+(KitKat) > - iOS需使用iOS 6+和Safari 6+ > - 遇到空白页面时,检查设备是否授权USB调试 --- ### 调试技巧 1. **自动刷新**:启用DevTools的**Auto-open DevTools**功能 2. **远程调试**:对于真机问题,使用`adb forward tcp:9222 localabstract:chrome_devtools_remote`建立隧道 3. **元素断点**:右键元素选择**Break on**监听DOM变化 4. **移动端同步**:在DevTools点击**设置** > **Devices**添加网络设备 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值