--- layout: post title: "Firefox 的查看源代码功能" description: "Firefox 的查看源代码功能的总总" date: 2015-05-27 23:24:00 +0800 category: tech thumb: 'IMG_PATH/firefox.png' tags: [Firefox, view-source, 源代码, 新标签页] --- * toc {:toc} 在[小熊猫 Firefox](firefox.html){:title="小熊猫 Firefox"} 中,我提到了 Firefox 查看源代码功能。 Firefox 查看源码最简单的办法就是右键点击“查看页面源代码(View Page Source)”,你还可以使用快捷键 `Ctrl`+`u` 以快速查看。 ## 特色功能 相比较其他浏览器,Firefox 查看源码功能有过而无不及,特色功能主要有以下两个。 1、查看页面源代码时,Firefox 会在 HTML 语法错误的地方以显眼的红色标记。 ![源代码红色标记错误]({{site.IMG_PATH}}/view-source-in-firefox-01.png) 源代码红色标记错误 2、选中网页的部分元素,右键可查看选中部分的源代码(View Selection Source)。 ![右键查看选中部分源代码]({{site.IMG_PATH}}/view-source-in-firefox-02.png) 右键查看选中部分源代码 在此需要提醒的是,查看选中部分源码时,显示的是浏览器解析页面完毕后的代码,包括通过 JavaScript 进行加载的一些元素,也就是说和“查看元素(`Shift`+`Ctrl`+`i`)”显示的代码是一样的。 ## 新标签页查看源码 Firefox 最新版本已有变化 ,查看源码、选中源码均为新标签页打开。 Chrome 等浏览器查看源代码是在新的标签页中显示的(如图),实践发现 Firefox 也是通过 `view-source:`+`URL` 这个地址即可查看源代码。 ![Chrome 新标签页显示源代码]({{site.IMG_PATH}}/view-source-in-firefox-03.png) Chrome 新标签页显示源代码 可是 Firefox 默认弹出一个窗口显示,这个窗口甚至可以替换成第三方编辑器,这种体验鄙人感觉不如 Chrome,不过强大的 Firefox 肯定也是能实现一样的功能,随便一搜就有第三方扩展支持,比如 [Source Viewer Tab](https://addons.mozilla.org/en-US/firefox/addon/source-viewer-tab/)。 为实现一个简单的功能去安装一个扩展诚然有些不值,还是另寻它径吧,书签支持 JavaScript,那么可以获取当前页面的地址,采用 `window.open()` 方法即可实现新标签页打开。 {% highlight javascript %} javascript:window.open("view-source:"+top.location); {% endhighlight %} 若是 Chrome 这样即可,但 Firefox 还需在后面加上 `void(0)`,否则当前页面将被重定向。 {% highlight javascript %} javascript:window.open("view-source:"+top.location);void(0); {% endhighlight %} 或是 {% highlight javascript %} javascript:void(window.open("view-source:"+top.location)); {% endhighlight %} 鄙人用 Pentadactyl,习惯了快捷键操作,那么如何配置 Pentadactyl 使 FF 可快捷键新标签页显示源码呢?一样可通过 JavaScript 获取当前页面网址。在 `_pentadactylrc` (非 Windows 则是 `.pentadactylrc`) 中添加如下。 {% highlight javascript %} com! view-source exe "t view-source:" + top.content.location; map vs :view-source {% endhighlight %} 别问我为什么要加 `content`,Firefox 扩展们需要这么干。`:rehash` 之后,`v` `s` 便是新标签查看源码的快捷键。 另外,Pentadactyl 自身也提供一个命令 `:viewsource` 可当前页面查看源码,`:dia[log] selectionsource` 则是查看选中部分源码,不妨也给其绑定一快捷键 `s` `s`。 map ss :dia selectionsource ## 源码页面字体? 在此,也扯一下 Firefox 查看源码页面的字体。相比其他浏览器,Firefox 源码页面更加良心,各部分都精心设计,例如元素名被加粗亮色显示。可是,同是使用新宋体,为何显示效果感觉比 Chrome 丑? 利用“查看元素”得知,样式是 `viewsource.css` 文件定义的,不过鄙人找不到这个文件。 ![viewsource.css]({{site.IMG_PATH}}/view-source-in-firefox-04.png) viewsource.css 事实上这个页面的字体定义继承于等宽字体,即在`选项`-`内容`-`字体和颜色`-`高级`里面设置。 ![设置等宽字体]({{site.IMG_PATH}}/view-source-in-firefox-05.png) 设置等宽字体 如果你觉得这样改还不过瘾,可以直接跑 `about:config` 里面更改 `font.name.monospace.zh-CN` 选项(中文版本),就可以 CSS 一样的指定字体优先级(说白了就是指定中英文字体),例如 `Consolas, Microsoft Yahei`,字体大小则可更改 `font.size.fixed.zh-CN` 选项。 ## 参考资料 * [View page source trick in firefox, flock : Burad's Blog](http://www.aburad.com/blog/2008/04/view-page-source-trick-in-firefox-flock.html) * [Set Bookmarks to Open in a New Tab](http://lifehacker.com/5784781/set-bookmarks-to-open-in-a-new-tab-in-chrome) * [javascript - document.URL vs location.href > no results - Stack Overflow](http://stackoverflow.com/questions/5164964/document-url-vs-location-href-no-results) * [window.content - Web API 接口 \| MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/content) **本文历史** * 2015 年 05 月 27 日 完成初稿 * 2015 年 09 月 05 日 更新,新版本变化