移动端网页开发调试神器Eruda的介绍与使用技巧

 更新时间:2017年10月30日 09:48:20   作者:dunizb  
在日常的移动端开发时,一般都是试用chrome浏览器的移动端模式进行开发和调试,只有在chrome调试完成,而最近发现了一个新的调试方法,所以这篇文章主要给大家介绍了关于移动端网页开发调试神器Eruda的基本资料,以及其使用的一些技巧,需要的朋友可以参考下。

前言

众所周知,我们在做移动端Web开发的一大痛点就是,在真机运行下无法查看console.log日志和其他信息如网络请求、显示本地存储等信息。如果网页是运行在手机浏览器中还算好,可以把网址在电脑上打开查看console信息,但是如果是做APP的内嵌H5页面,那就只能靠开发阶段在浏览器模拟环境中尽量没有Bug,但是,一旦H5上线后报错那就比较麻烦了,而且还依赖APP环境才能跑的网页,更加难以查找问题。如果让移动端也拥有类似Chrome DevTools工具那岂不是很愉快么?

vConsole便是这样一款很棒的移动端DevTools工具,由大厂企鹅出品。但本文把他定位为男二号,今天的主角男一号是:Eruda!vConsole的同类。如果你不知道怎么在移动端调试网页,那么本篇文章对你很有帮助,如果你是vConsole的用户,那么你也可尝试一下Eruda,如果你是移动端网页开发骨灰级玩家,那么可以选择低调的忽略本文。

Eruda是谁?

大家好,给大家介绍一下,这是我的.....。Eruda 是一个专为手机网页前端设计的调试面板,类似 DevTools 的迷你版,其主要功能包括:捕获 console 日志、检查元素状态、显示性能指标、捕获XHR请求、显示本地存储和 Cookie 信息、浏览器特性检测等等。

GitHub地址为:https://github.com/liriliri/eruda (本地下载),颜值和技能都很棒的Erdua:

详细介绍可以戳这里产看,我就不赘述了

使用技巧

这才是本文重点。Eruda的基本使用方法推荐使用CDN和可配置参数的形式,在页面引入如下代码:

;(function () {
 var src = '//cdn.bootcss.com/eruda/1.2.4/eruda.min.js';
 if (!/eruda=true/.test(window.location) && localStorage.getItem('active-eruda') !== 'true') return;
 document.write('<scr' + 'ipt src="' + src + '"></scr' + 'ipt>');
 document.write('<scr' + 'ipt>eruda.init();</scr' + 'ipt>');
})();

eruda.init();里面可以传入要初始化哪些面板,默认加载所有。

这样使用方式没有错,但是如果Eruda要跟着发布到线上的话,那我们要删除这段代码?因为这样会不管你需不需要调试Eruda都会立即加载,在页面出现Eruda的图标。我的目标是,Eruda可以保留在页面里,无论什么环境,只要我们想呼唤它出现的时候它才出现,不需要它的时候它只是一段不会生效的普通代码。

我想到的办法是:首先把上述引入代码的src放到if里,同时把localStorage改为sessionStorage,active-eruda参数也可以改个更短的名字,改后的代码如下:

;(function () {
 if (!/eruda=true/.test(window.location) || sessionStorage.getItem('eruda') !== 'true') return;
 var src = '//cdn.bootcss.com/eruda/1.2.4/eruda.min.js';
 document.write('<scr' + 'ipt src="' + src + '"></scr' + 'ipt>');
 document.write('<scr' + 'ipt>eruda.init();</scr' + 'ipt>');
})();

这段代码的意思是如果URL中有参数eruda=true或者sessionStorage中eruda的值为true才加载Eruda。这样的好处是,我们需要调试的时候可以在网页URL后面加个参数即可,不需要调试的它不会加载。

然而,这在开发阶段可以这样做比较好,但是在线上环境可能要加URL参数比较麻烦。于是我想到了在页面中点击某个元素10次再加载Eruda,点击10次或者更多次,然后在sessionStorage中写入eruda=true,然后刷新当前页。相反,再点击10次关闭Eruda。用这样比较隐藏的方式开启或关闭Eruda,这样线上环境也可以自由开启或关闭Eruda了。

例子:假如有这样的一个页面,里有一个标题文字

<h2>——规则详情——</h2>
<div>
.....
</div>

那么我们可以在h2标签上绑定一个click事件,加入方法名叫showEruda

<h2 onclick="showEruda">——规则详情——</h2>
<div>
.....
</div>

<script>
var count = 0;
function showEruda () {
 if (count >= 10) { 
 var erdua = sessionStorage.getItem('erdua');
 if (!erdua || erdua === 'false'){
  sessionStorage.setItem('eruda', 'true')
 } else {
  sessionStorage.setItem('eruda', 'false')
 }
 location.reload()
 }
 count++
}
</script>

这样点击规则详情10次就可以唤起Eruda了,再点击10次就关闭Eruda,反正我觉得这样挺好的。

不知道大家都是怎么用的呢?

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • JavaScript中解决变量名冲突的方法详解

    JavaScript中解决变量名冲突的方法详解

    在 JavaScript 中,当代码中出现多个相同的变量名时,JavaScript 引擎将根据 作用域链和 变量提升的规则来决定使用哪个变量,以下是详细的解析,需要的朋友可以参考下
    2025-02-02
  • javascript中检测变量的类型的代码

    javascript中检测变量的类型的代码

    javascript对于变量的定义、类型的要求都比较松散,这样既方便,但又容易犯错。有时候进行必要的类型检查是必须的。
    2010-12-12
  • 深入探讨TypeScript中类与接口的使用

    深入探讨TypeScript中类与接口的使用

    TypeScript是一种强大的编程语言,它在JavaScript的基础上添加了静态类型检查,使得代码更加可维护和类型安全,在TypeScript中,类和接口是构建复杂应用程序的关键组成部分,本文将深入探讨TypeScript中类与接口的使用,需要的朋友可以参考下
    2023-09-09
  • javascript解析json格式的数据方法详解

    javascript解析json格式的数据方法详解

    这篇文章主要介绍了javascript解析json格式的数据方法详解,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 分享XmlHttpRequest调用Webservice的一点心得

    分享XmlHttpRequest调用Webservice的一点心得

    因为项目需要,以后前端、手机客户端调用ASP.NET的Webservice来获取信息.所以这段时间开始看Webservice,试着通过XmlHttpRequest调用Webservice,过程中碰到不少问题,也有不少的收获
    2012-07-07
  • JavaScript之浏览器对象_动力节点Java学院整理

    JavaScript之浏览器对象_动力节点Java学院整理

    JavaScript可以获取浏览器提供的很多对象,并进行操作。下面通过本文给大家介绍JavaScript之浏览器对象的相关知识,一起看看吧
    2017-07-07
  • Webpack ECMAScript 模块详解

    Webpack ECMAScript 模块详解

    ECMAScript 模块(ESM)是在 Web 中使用模块的规范, 所有现代浏览器均支持此功能,同时也是在 Web 中编写模块化代码的推荐方式,这篇文章主要介绍了Webpack ECMAScript 模块,需要的朋友可以参考下
    2023-12-12
  • 在一个页面重复使用一个js函数的方法详解

    在一个页面重复使用一个js函数的方法详解

    下面小编就为大家带来一篇在一个页面重复使用一个js函数的方法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • JavaScript实现微信红包算法及问题解决方法

    JavaScript实现微信红包算法及问题解决方法

    这篇文章主要介绍了JavaScript实现微信红包算法及遇到的问题解决方法,需要的朋友可以参考下
    2018-04-04
  • javascript实现圣旨卷轴展开效果(代码分享)

    javascript实现圣旨卷轴展开效果(代码分享)

    本文主要介绍了javascript实现圣旨卷轴展开效果的示例代码。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03

最新评论