这篇文章将为大家详细讲解有关移动端网页开发调试神器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了。
例子:假如有这样的一个页面,里有一个标题文字
<h3>——规则详情——</h3>
<div>
.....
</div>
那么我们可以在h3标签上绑定一个click事件,加入方法名叫showEruda
<h3 onclick="showEruda">——规则详情——</h3>
<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>
关于“移动端网页开发调试神器Eruda怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。