开发
过去几年来,浏览器开发工具一直是Web开发者最得力的工具。它能够与Web浏览器和谐相处,允许我们在当前窗口中实时地操作DOM元素、CSS样式和JavaScript,以及获取一些其他的有用信息。
以前开发者使用Firefox的一个名叫Firebug的扩展,来开发和调试他们的网站。但是最近,各个浏览器都开发了一套它们自己的工具,并且每一个都有自己的优势和劣势。如今很难想像没有这些方便的工具,如何来构建一个网站。
激活开发工具通常是按下“F12”键(Mac系统为 Cmd + Option + I ),或通过右键点击页面,选择弹出菜单中的“审查元素”。
你充分发挥了这些工具的潜力吗?开发工具最大的特点就是很容易使用,但结果就是开发者们常常错过了它们所提供的大部分功能。受到Paul Irish 和 Pavel Feldman 视频谈话的启发,我列出了一个有关开发控制台“秘密”的列表。我不指望它们中的每一个都对你来说是未知的,只希望它们中的某一些能够有助你成为一个更好的Web开发者。
如果你有更多的“秘密”,请自在地在文章末尾留言——一旦我确认了,我会及时更新这篇文章。我也很想知道你哪个开发控制台是你首要的开发工具,也可以直接在下面留言。
控制台选项卡
引用当前元素
Chrome, Firefox, Opera, Safari– 如果在“元素”选项卡中,你有一个元素正被选中的话,你可以通过引用“$0”来你的代码中调用它。比如,为了看到你选中元素的内容,你可以输入 “$0.innerHTML”。在Chrome和Safari中,你可以通过按下“Esc”键,立即从其他选项卡切换到控制台(开发工具打开了的情况下)。在Firebug中,控制台通过点击选项卡左侧的图标,或按下Ctrl + Shift + L 来切换(Mac 下是 Cmd + Shift + L )。
在Opera中,你可以用“$1”往前引用元素。在Chrome和Safari中,你可以用“$1~$4”往前引用元素。
使用console.log同时输出多个值和对象
所有浏览器–我们都知道,console.log()
方法用来输出调试信息到控制台时非常有用,尤其是与alert相比。但是当你想要输出一个字符串紧跟着一个对象时,它输出的形式会让人生烦。比如使用console.log('message:' + $('#message'))
将仅仅告诉你消息是一个对象(*译注:可能输出结果是“message:[object Object]”),并且如果这个过程在一个循环体中的话,对象的表示让人困惑。
console.log()
实际上可以接收多个参数,所以你可以同时输出字符串和对象:console.log('message:',$('#message'));
或者其他你能想到的JavaScript类型组合。
你可以用console.warn()
输出警告消息;用console.error()
输出错误消息;用console.info()
输出信息消息。你也可以使用console.assert()
来检测表达式为true或false。
(感谢Masklinn提供了此项信息)
重用JavaScript命令
所有浏览器–如果你输入过一条命令到JavaScript控制台,并且你又想重新运行它,只要简单地按下方向键“↑”来回滚你调用过的命令就可以了。
保持
Chrome,Firefox–Firebug 控制台上方有一个很明显的“保持”(Persist)按钮,但Chrome中被稍微隐藏掉了——需要右键点击控制台,在弹出的右键菜单中选择“Preserve Log upon Navigation”选项。
*译注:保持的作用是让控制台在刷新页面后仍然保留已输出的控制台信息。
查看对象源
Firefox–Firefox支持toSource()
方法,这意味着在Firebug中可以直接调用这个方法来打印一个对象的字符串表示。
改变frame
Firefox–从控制台直接运行JavaScript命令是很有用的,但是如果你页面用了iframe内容的话,就变得麻烦了。幸运的是,用下面的“cd”命令能够进入到指定的iframe环境,得以重新运行你的命令:
cd(window.frames['frameName']);
*译注:比如cd(window.frames[0])
,它会进入第一个iframe的执行环境,并显示一条info消息:["Current window:", Window sample.com];同时,返回上层可以使用:cd(parent)
Chrome–Chrome允许你用一个不同的方式来改变frame,点击控制台底部的下拉菜单进行切换:
Opera–Opera中,控制台和文档选项卡都存在一个用来切换frame的下拉菜单——控制台中的那个下拉菜单仅在有frame可供选择时才显示:
(感谢Paul Irish和Daniel提供此项信息)
直接复制你的代码到剪贴板
Chrome,Firefox,Safari–在控制台中使用copy()
命令,以内容作参数,将直接复制内容到剪贴板。
让浏览器做计算
所有浏览器–这个技巧很有意义,但令人惊讶的是会有多少人不这么去用它。当你想快速知道一个数学计算的答案(比如,一个456像素宽度的容器分三栏,每栏有多宽?),你不需要打开一个计算器,直接在控制台输入就能立即返回答案。顺便说一下,答案是152。
*译注:这又不是Bot,O_O作者应该是指直接在控制台输入表达式:456/3
脚本选项卡
页面所有运行脚本安身的地方,这个选项卡包含了一个下拉菜单,让你可以选择你想要调试的脚本。
处理压缩过的脚本
Chrome,Internet Explorer, Safari–放置一个断点在代码中会让调试更简单。如果脚本是已经投入生产环境了的话,它就很可能已经被压缩过了。这时怎么你怎么调试压缩过的代码呢?幸好,部分浏览器有个选项可以解压你的JavaScript代码。
Chrome和Safari中,简单地选择脚本选项卡,通过下拉菜单选择相关的脚本,然后点击底部面板的”{}”(pretty print)图标:
在IE9中,点击选中脚本旁边的工具图标来格式化JavaScript代码:
监视变量
所有浏览器–.NET开发中的一个常用工具,“监视”允许通过脚本选项卡右上栏的方便的区域来观察一组变量。要观察一个变量很简单,只要输入它的名字,“监视”将保持它最新的值。
实时编辑和执行JavaScript代码
Chrome–在Chrome中,你可以直接在页面中进行编辑,并不需要使用单独的编辑器或者重新加载页面。简单地双击你想要改变代码,然后输入新的代码!按Ctrl + S (Mac,Cmd+S)保存。
当错误发生时创建一个断点
所有浏览器–当第一个脚本错误发生时,简单地点击脚本选项卡中的暂停图标,出错行将会高亮以便查看。
当DOM改变时创建一个断点
Chrome,Firefox–如果你知道当某个特定部分的DOM改变时页面崩溃了,或者你仅仅想找出是哪段脚本改变了某个元素的属性,Chrome和Firefox都提供了有效设置断点的方式来找出这个元凶。简单地选中你要监视的元素,右键点击它,选择中断条件:
(感谢Jason Wilson提供此项信息)
元素选项卡
Firefox中叫做“HTML”选项卡,Opera中叫做“文档”(Documents)选项卡。元素(Elements)选项卡显示的是当前状态的DOM。在IE中,你需要点击“刷新”按钮才能查看当前的DOM。
获取一个容器尺寸的简易办法
Chrome,Safari–我是个在包含浮动元素的容器上使用overflow:auto
样式的大粉丝——旧版本的IE这样做会引起麻烦,除非你给元素指定了实际宽度(auto和100%都不够)。虽然元素的实际尺寸可以在元素选项卡右上角的“Computed Style”栏看到,但仍然需要点击好几次。在Chrome或Safari中更好办法是,鼠标悬停到元素选项卡里HTML源代码的特定元素上,或者点击底部工具栏上的放大镜后再悬停到页面特定元素上:
Firebug, Internet Explorer, Opera– 你需要选择开发工具右手侧面板中的“布局”(Layout)选项卡,或在右侧边栏中的“计算样式”(computed styles)中查看。
#p#
展开所有元素视图
Firefox,Opera–在Firebug的HTML选项卡中,按下小键盘上的星号(*)键就可以展开选定的所有元素。默认不会展开脚本标记和样式标记,除非你同时按下Shift + * 键。
Opera– Opera“文档”(Documents)选项卡下边直接有个按钮可以做这件事:
增加边距、间距、高度、宽度、边框——甚至是颜色
所有浏览器–如果你想改变某元素的边距、间距、高度或者,你可以用光标键(即方向键)来增加/减小大小:
- 按上(↑)或下(↓)键将增加或减小单位1。
- 在Chrome,Firebug和Safari中,按住Shift键的同时,再按上或下键将增加或减小单位10。(*译注:Page-Up和Page-Down键有同样的效果)
- 在Chrome和Safari中,按住Alt键的同时,再按上或下键将增加或减小单位0. 1。
- 在Chrome和Safari中,按住Shift键的同时,再按Page-Up或Page-Down键将增加或减小单位100。
这些快捷键在你不确定用哪种使用的尺寸做样式时特别有用。另外,Chrome,Firebug和Opera中,你同时可以用这些快捷键来修改颜色值。
*译注:需要双击元素选项卡右侧的具体样式,使其进入编辑状态。
为:active, :hover, :focus, :visited状态设置样式
Chrome,Firefox,Opera–在控制台操作样式真的很棒,但测试悬停样式就麻烦了。庆幸的是,有个解决办法。
Chrome有个内置按钮用来做这件事。在元素选项卡右侧有个带虚线框和光标的图标,它就是用来编辑状态样式的:
Firebug中,点击右侧的Style选项卡旁边的带箭头菜单,然后选择你想要编辑的状态。
在Opera中,样式选项卡下面有个看起来像列表的图标。
轮换颜色定义类型
Chrome,Safari –Web页面中的颜色能用多个方式定义——通过名称、16进制数字(3位或6位)、rgb或hsl(都有带alpha透明的版本)。在Chrome 或 Safari中,你可以通过点击颜色值旁边的方形图标来在这几个类型定义之间切换。
*译注:增加了这个截图,以前我仅仅以为那个方块是用来展示颜色的,囧,根本不知道它还能点击——又多了一个能省略掉计算器的功能。
颜色拾取器
Opera– 在 Opera中,和上面一样,点击颜色值右边的方块图标可以弹出一个方便的拾取器:
*译注:这里又有了个HSV颜色自动转换RGB颜色的工具。
资源选项卡
资源(resources)选项卡列表你的页面使用的所有样式表、JavaScript文件和图片。不幸的是,IE和Firebug中不存在这个选项卡,尽管在它们的其他选项卡中集成了这项功能的一些特征。
保存你的更改
Chrome,Internet Explorer, Safari——在工具中即时编辑样式或JavaScript很爽。但当你高高兴兴地做了修改,然后又要在源代码中重新实现一遍就不那么爽了。
在IE中,每个选项卡提供了一个“保存”图标,它的功能就是保存修改到一个文件当中。
同时,Chrome和Safari的资源选项卡中提供了一项贴心的功能:它保存了你每次修改的版本(按Ctrl + S之后),还允许你往前或往后查看每个版本的变化。你修改过的文件名旁边会出现一个箭头图标,表示它可以展开/收起以查看修改过的版本列表。在Chrome中,右键点击文件名可以选择保存这个文件。不过在Safari中你只能悲剧地复制和粘贴了。
Cookie和存储
Chrome,Opera, Safari–资源选项卡下半部分的资源列表表示了各种不同的数据存储选项。Opera有一个单独的存储选项卡。
网络选项卡
网络(Network)选项卡显示你页面加载的所有文件资源。大多数情况,你打开它之后,要刷新一下页面才能显示出你想看的信息。在Firebug中,选项卡的名称是“Net”。对于IE,直到版本9以后才有它。
禁用浏览器缓存
所有浏览器–每个浏览器都可以禁用缓存,但禁用的方式不一致。
在Chrome中,点击开发工具右下角的齿轮图标进行设置。在Firebug中,设置位于网络选项卡旁边的箭头下拉菜单中。在IE中,设置位于菜单栏的存菜单项。
在Opera中,要清除缓存的话,点击网络选项卡,选择网络选项中的第二个选项卡,选择其中的第一个选项。在Safari中,在菜单栏中的“开发”菜单中禁用缓存。
Windows中,在浏览器中可以按下Ctrl + Shift + Delete键调用消除缓存对话框。
*译注:Opera中我根本没找到,只有设置/历史选项卡可供设置。
延迟
所有浏览器–网络选项卡允许你查看服务器响应一个请求花了多长时间。每个资源对应的浅色填充部分表示请求是何时发送,并且何时返回的。深色填充部分表示资源是何时下载的。在Chrome中,你可以用悬停在每条时间线上以获得消耗时间的具体信息。
在Opera中延迟表示的原则是一样的,除了它用的是灰色的线条,而Chrome是浅色填充。
在IE中,延迟被标记成黄色,并且悬停到时间线上也会取得更多信息。
在Firebug中,延迟被标记为紫色,并且用的术语是“Waiting”。悬停到时间线上同样能获得各方面时间消耗的详细信息。
DOMContentLoaded 和load事件触发
Chrome,Safari– Chrome和Safari中网络选项还展示了两项额外的信息,DOMContentLoaded事件触发的时间用蓝线表示,load事件触发的时间用红线表示。
DOMContentLoaded代表的那条线表示当浏览器已经完成解析文档(但其他资源比如图片和样式表可以还没下载完成),而load事件代表的线表示所有资源都已经加载完成了。
如果这两个事件同时发生,这条线会显示为紫色。
其他
崩溃
所有浏览器–有时我发现开发者工具会崩溃,或鼠标点击时会失去响应。我也经常发现使用键盘快捷键关闭再重新打开开发工具可以修复这个问题,而不需要去关闭整个浏览器再重新打开。
我希望这些特性和秘密对你有所帮助。我故意没有在这个列表中包含性能分析和远程调试的内容,那将是我后续文章要讲到的了。欢迎您在评论中反馈、挑错,或留下你的技巧。
文章出自:长天之云的博客
英文出自:andismith.com
分享到:
相关推荐
精品教育教学资料
本书《更快开发***程序的25个秘密》由多位***社区成员共同撰写,旨在提供实用的技巧和建议,帮助开发者构建可扩展的网站和服务,以及加速***应用程序的开发和性能优化。作者们通过分享他们的经验,揭示了许多通常不...
总的来说,Dialupass是一款功能强大、易于使用的密码恢复工具,它揭示了隐藏在网络配置深处的秘密,但同时也提醒我们,无论何时何地,都要重视网络信息安全,妥善保管个人隐私。在日常使用中,合理利用Dialupass可以...
**正文** `sagui` 是一个强大的工具集,专为构建、测试和开发现代JavaScript应用程序而设计...对于初学者来说,这是一个了解现代前端开发流程的好起点,对于经验丰富的开发者,它可能成为一个提升开发效率的秘密武器。
通过学习这些“秘密”,开发者可以更好地理解和利用JavaScript的强大功能,从而在项目开发中游刃有余。 首先,我们要明白JavaScript是一门动态类型的脚本语言,它在Web开发中扮演着核心角色。了解JavaScript的原型...
NET程序员的开发利器.NET Reflector 一、 简介 程序集,作为.NET时代的动态链接库,蕴藏了太多...在如今的.NET时代,Reflector又成为每个严肃的.NET开发人员工具箱中必不可少的精髓工具之一。怎么样,请赶紧试锋吧。
ArcGIS API for JavaScript 是Esri公司推出的一款用于构建地理信息系统(GIS)Web应用的强大开发工具。它为开发者提供了丰富的地图和地理处理功能,使得在Web浏览器中创建交互式地图成为可能。其中,“智能提示工具...
总的来说,“极客--秘密--项目笔记”可能涵盖了网络请求、数据交互、API使用、调试技巧以及安全性等多个方面,这些都是IT专业人士在开发过程中必备的知识点。理解并掌握这些技能,能有效提升开发效率,保证项目安全...
它是一个类浏览器和反编译器,可以分析程序集并向你展示它的所有秘密。使用Reflector for .NET可以浏览程序集的类和方法,可以分析由这些类和方法生成的 Microsoft 中间语言 (MSIL),并且可以反编译这些类和方法并...
这款小巧而强大的工具由知名系统工具开发者 NirSoft 开发,其主要功能是提取并整合多个浏览器的浏览历史数据,为用户提供全面的浏览历史报告。 首先,我们来了解一下BrowsingHistoryView的工作原理。该工具支持多种...
实用Android开发工具和资源精选 APK权限大全 - Android必懂知识 最无私的Android资料(书籍+代码)分享[总结] Android中文帮助教程(非常合适新手入门) android程序编写及调试新手入门 大家一起学Android(Windows...
6. **合法使用与侵权问题**:虽然复制源码工具能帮助学习和研究,但未经许可复制他人网站源码可能涉及侵犯版权和商业秘密。合法的使用通常限于个人学习、教育或分析目的,而不能用于商业复制或抄袭。 7. **压缩包...
这个项目是通过特殊的秘密聊天应用程序启动的! 可用脚本 在项目目录中,可以运行: npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何...
标题"参考资料-流量的秘密 Google Analytics网站分析与优化.zip"指出,这是一个关于使用Google Analytics进行网站分析和优化的参考资料集合,重点在于揭示网站流量背后的秘密。Google Analytics是一款强大的网络分析...
然而,有时由于配置不当或者安全措施不足,JSP应用可能会暴露源代码,这对于任何Web开发来说都是一个严重的问题。"jsp暴源代码工具"通常指的是用来检测或利用这种漏洞的工具。 1. **JSP源代码泄露的危害** - 安全...
SWF(Small Web Format)是一种由Adobe公司开发的用于在Web上展示动画和交互内容的文件格式。它广泛应用于早期的网页设计、在线游戏以及多媒体应用程序。本篇将详细介绍SWF解析工具及其在处理Flash源文件中的应用。 ...
在IT行业中,网络数据抓包是一项重要的技术,用于检测、分析和调试网络通信。...在安卓7.0及以上版本,由于...无论你是开发者、测试人员还是网络安全爱好者,这个工具都将是你手中的利器,帮助你深入理解网络通信的秘密。
总结来说,"Laravel开发-assets-laravel-aws-manager"是一个针对Laravel的AWS CDN管理工具,它简化了将Laravel应用的静态资源部署到AWS S3并利用CloudFront进行内容分发的过程,提高了网站的性能和用户体验。...
总的来说,"网页源码查看器"是一个实用的工具,无论你是网页开发新手还是经验丰富的专业人士,它都能提供一个简单而有效的途径,帮助你洞察网页背后的秘密。通过熟练掌握这类工具,你可以提升自己的网页理解和编辑...
NET程序员的开发利器.NET Reflector 一、 简介 程序集,作为.NET时代的动态链接库,蕴藏了太多...在如今的.NET时代,Reflector又成为每个严肃的.NET开发人员工具箱中必不可少的精髓工具之一。怎么样,请赶紧试锋吧。