
日常备忘录
文章平均质量分 50
cmyh
以中有足乐者,不知口体之奉不若人也
展开
-
判断是否是微信浏览器
window.onload = function() { if(!isWeiXin()) { console.log("不是微信"); }else{ console.log("是微信"); } } //判断是否是微信浏览器 function isWeiXin() { var wx = window.navigator.userAgent.toLowerCase()原创 2017-08-09 16:46:39 · 432 阅读 · 0 评论 -
关于JS函数参数的原理理解
1:函数所接受的参数,始终是一个数组2:该数组可以通过函数里访问arguments对象来访问(自己测试的时候console.log一下就一目了然)例如:function sayHi(hi) { alert(hi)}function sayHi() { alert(arguments[0])}执行sayHi('hi arguments'),两个写法得到的东西相同...原创 2018-07-04 17:29:31 · 777 阅读 · 0 评论 -
移动端后台预加载HTML页面,setTimeout定时器线程跑完问题
在兼容IOS8的时候遇到一个有趣的问题:IOS预加载了页面,在页面中我写入了一个setTimeout(差容、缓冲的作用),其作用是为了兼容老版本的设备无Hybird交互仍然能使用功能。结果发现,页面后台加载完,计时器线程便开始跑了,这让我满头黑线于是我加入的setInterval、documen.hidden(页面前台状态为false,后台状态为true),让它每隔2秒检测一次情况...原创 2018-09-07 17:11:40 · 1031 阅读 · 0 评论 -
巧记OSI七层网络模型(前端)
网络七层协议,乍看之下非常的笼统,看得人云里雾里。但真正了解清楚了它的本质,对于整个计算机网络以及日常的工作会带来非常大的帮助。以下就是个人的一些理解,分享给大家。物理层:通过硬件设备将模拟信号转换为数字信号,于是有了0/1数据流,叫做比特流。数据链路层:可以发比特流但是没有格式就会乱七八糟,于是就有了”帧”。采用了一种”帧”的数据块进行传输,为了确保数据通信的准确,实现数据有效的...原创 2018-09-19 12:02:43 · 23271 阅读 · 5 评论 -
onload和DOMContentLoaded区别理解
当onload事件触发的时候,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。当DOMContentLoaded事件触发的时候,仅当DOM加载完成,不包括样式表,脚本,图片,flash。...原创 2019-01-04 15:21:48 · 1355 阅读 · 0 评论 -
事件生命周期——捕获和冒泡有感
IE8以前只支持事件冒泡,所以我们会为了兼容,尽量去使用事件冒泡。流程从事件捕获开始,父节点到子节点,逐层往下捕获,再从子节点到父节点,逐层往上冒泡。优点:1.外部dom更快的访问到,例如需要动态创建的节点,在父节点进行绑定事件,往内部冒泡即可。2.减小代码量,只需一次绑定。3.减小内存开销。...原创 2019-01-02 11:34:32 · 223 阅读 · 0 评论 -
用webpack写一个自己的loader(案例:webpack图片不打包问题)
遇到的问题:webpack搭建项目的时候,因为使用file-loader将图片打包,但是index.html的模板中的图片,因为没有被依赖并不会被一并打包。解决方案:(偷懒可以直接 npm ihtml-reqimg-loader --save-dev )找到了一个html-withimg-loader,它似乎可以解决这个问题但是用上了之后发现,它不支持我通过resolve.alia...原创 2019-05-17 21:06:16 · 856 阅读 · 0 评论 -
npm脚本运行与命令行直接输入命令的区别
从案例中寻找到答案问题:我们时常会在package.json里配置npm命令,例如:"serve": "webpack-dev-server"每当我们用命令npm run serve的时候,用的美滋滋但是如果直接使用webpack-dev-server敲在上面的时候,有时候是不是会出现下面的图呢?原因:命令行直接输入的方式这种方式使用必须全局安装,在全局安装了的情况下,命令...原创 2019-06-19 16:21:29 · 3216 阅读 · 0 评论 -
ES6解构赋值,了解这些可以解决80%业务场景
什么是解构?在ES5的时候,如果对象中提取某个字段,得进行申明变量后赋值的操作,步骤较为繁琐。ES6通过解构赋值操作,可以将属性/值从对象/数组中取出,快速赋值给其他变量。简单的例子:// 对象const author = { name: 'cmyh',};const {name} = author; // 等同于 const name = user.name;con...原创 2019-08-18 06:38:30 · 248 阅读 · 2 评论 -
基于NodeJS的视频网站爬虫工具
闲暇时间写了一个基于nodejs的爬虫工具,可以对视频网址等站点进行爬取数据示例站点为dilidili动漫网http、cheerio用于获取网站Dom数据exceljs用于生成excel文件Code:[https://github.com/cmyh100/dilidiliSpider]使用方法可以在src/index.js文件修改相关初始化参数(例如调整endTime: 2...原创 2019-09-24 21:11:43 · 1682 阅读 · 0 评论 -
关于WebViewJavascriptBridge消息互通三方库的js封装(干货)
废话不多说,直接上代码注册与app的桥接// 注册事件监听 function connectWebViewJavascriptBridge (callback) { if (window.WebViewJavascriptBridge) { callback(window.WebViewJavascriptBridge) } else { ...原创 2018-04-13 11:04:44 · 1746 阅读 · 0 评论 -
css实现文字颜色渐变
懒得码字了,实现如下:/* color: transparent;全透明色彩 *//* background-image: -webkit-gradient(linear, 0 0, 0 bottom, from(#ff696a), to(#ffe57f));渐变色背景 *//* -webkit-background-clip: text;设置背景的绘制的范围 *//* -webkit-text-...原创 2018-03-15 14:16:41 · 2655 阅读 · 0 评论 -
JavaScript获取链接url参数并生成对象
获取地址栏参数,实用又方便日常每次在获取URL上的参数都得写一遍 location.search接着xxxx一顿分割字符串想做个一劳永逸的东东,所以写了一个迷你URL的解析工具喜欢的朋友可以下载看看原创 2017-08-09 15:23:00 · 2195 阅读 · 0 评论 -
js消息通知Notification
想要让自己的通知消息出现在桌面?看这里。最近写的消息提醒,主要是某需求要用到,感觉很不错,美中不足就是浏览器兼容性并没有非常的好自己电脑里的Google、Firefox没有问题但是搜狗、360、欧朋等等没有作用Edge提示在了点击后想要直接弹出相应的页面,这里取巧用了个alert更多大家去发掘吧代码如下://参数1:title原创 2017-08-09 16:56:33 · 4381 阅读 · 0 评论 -
JavaScript计算周期时间
今天一同事项目出了一个bug,她有两个时间,必须判断出这两个时间的属于哪周,并做出不同的逻辑处理首先她自然想到了new Date().getTime()获取到了时间戳,然后new Date().getTime()/1000/60/60/24/7然而里面的坑却慢慢的浮现出来。。。。首先是getTime()拿到的时间戳,我很好奇的打印出来看了看new Date('1970/1/1 00原创 2017-08-28 11:44:00 · 799 阅读 · 0 评论 -
如何给webAPP加上一个apk外壳
webAPP打包成apk流程(原理:webapp手机本地解压缩包打开)1.首先你需要一个Android开发软件,推荐Android Studio。下载地址:http://www.android-studio.org/安装过程默认即可,会遇到的问题就一些环境变量,sdk路径选择什么的,这里不详细介绍。2.创建一个项目进入软件界面我们开始新建一个项目,项目名自取,项目路径选原创 2017-09-06 10:18:27 · 7927 阅读 · 0 评论 -
js的三种自带对话弹框
1.alert() 警示对话框使用方法:alert("xxxxxxxx"); 2.confirm() 确认对话框使用方法:confirm("xxxxxxxxx");点击确定返回true,点击取消返回false3.prompt() 提示对话框使用方法:prompt("问题","默认值")var answer = prompt("问题","默认值");if原创 2017-09-19 10:50:31 · 494 阅读 · 0 评论 -
CSS 相邻兄弟选择器
今天遇到一个问题,某dom使用hover,让其相邻的兄弟节点显示与隐藏解决办法举例(节点类名分别为:dom和sibling):.sibling{display:none;}.dom:hover +.sibling{display:block;}原创 2017-09-01 20:15:30 · 1142 阅读 · 0 评论 -
js 利用html2canvas实现截图功能
需要导入的文件:jquery.min.js,html2canvas.js,canvas2image.js,jquery.qrcode.min.js(如需二维码)var shareContent = document.getElementById("imgmodel"); //需要截图的包裹的(原生的)DOM 对象var width = shareContent.offsetWidth; /原创 2017-09-19 13:51:54 · 1869 阅读 · 0 评论 -
关于swiper在移动端,快速上下滑动出现白边的解决办法
如下图所示,上下滑动swiper轮播图,顶部有白色的边出现。解决办法是把swiper-container所有父节点的overflow:hidden去掉,即可解决该问题原创 2017-07-02 12:37:01 · 7298 阅读 · 4 评论 -
js之iframe子页面与父页面通信
方法调用父页面调用子页面方法:FrameName.window.childMethod();子页面调用父页面方法:parent.window.parentMethod();DOM元素访问获取到页面的window.document对象后,即可访问DOM元素注意事项要确保在iframe加载完成后再进行操作,如果iframe还未加载完成就开始调用里面的方法转载 2017-09-20 16:33:46 · 1254 阅读 · 0 评论 -
Js 动态添加、删除 对象属性
var obj = {} 或 var obj = new Object()//1.对象.属性 = 赋值obj.aaa = 1//2.对象[属性] = 赋值 obj["aaa"] = 1;方法2中的属性可以为变量,例如var a = "aaa";obj[a] = 1;==================== 删除delete obj.aaadel原创 2017-09-20 18:43:44 · 1160 阅读 · 0 评论 -
用循环数组的方式自主配置需要调用的函数
最近总监让我把公司的业务逻辑抽象出来,方便以后调用并且说看看能不能简约到配置一下脚本即可写个小demo先实验一下 var arr = ['mya', 'myb']function mya () {return 1}function myb () {return 2}function myc () {return 3}function原创 2017-11-15 11:45:42 · 281 阅读 · 0 评论 -
关于浏览器渲染原理的相关文章
搜索关键词:RenderObject、光栅化、RenderLayer、Composite浏览器渲染流程&Composite(渲染层合并)简单总结https://blog.youkuaiyun.com/weixin_34268310/article/details/88859536How Rendering Work (in WebKit and Blink)https://blog...原创 2019-09-29 11:28:35 · 213 阅读 · 0 评论