当前位置: 首页 → 爱前端 → 

JavaScript

  • 抚云生活

     

 
 

浅谈onbeforeunload事件及其替代方案

曾经有个需求,需要判断页面是否离开或刷新,进行提示,根据用户的选择停留在当前页面或离开。对此问题,直觉当然是监听浏览器的onbeforeunload事件,在回调中进行判断处理。 但,问题来了,在页面中点击a标签模拟的按钮时,也会触发此事件,同样,正常的sub...[阅读全文]

 

文件异步上传的一些坑

在IE7、8、9下,不能返回json、plain格式,即响应头不能为:application/json、text/plain,前者会显示下载框,后者会自动对响应内容增加一层pre包裹:<pre>response.responseText</pre>,导致无法正确解析为json对象; 在IE9下,JSO...[阅读全文]

 

IE8下JSON.stringify()为null问题

问题描述 在序列化参数传给后端接口时,出现很多null值,排查代码无解。进入断点调试后,问题出现在: JSON.stringify({ test: $('#test').val() }) 若val调用(或者.value属性)返回空串,在IE8下的转换结果将是:{"test":"null"}。但直接输...[阅读全文]

 

JavaScript中的__proto__和prototype

JS原型相关的__proto__和prototype颇有些相似,容易混淆,该如何理解并加以应用呢? __proto__针对对象,prototype针对函数/构造器; 所有构造函数/函数(包括Object)的__proto__都指向prototype,它是一个空函数; 内置对象的__proto__指向prototyp...[阅读全文]

 

JS数据类型之争

阮一峰的ES6 Symbol中提到的JavaScript语言的数据类型包括:Undefined、Null、Boolean、String、Number、Object,以及新增的Symbol。而其前文又提到Function被作为“一等公民”,应与String、Number等平起平坐,而此处又只字不提,...[阅读全文]

 

toFixed引发的思考

问题描述 在对文件上传进度进行格式化处理时,涉及到精度的四舍五入问题,例如保留两位小数。这在JS中可以通过调用toFixed传入精度实现。但问题来了,先乘100再舍入,还是先舍入再乘100? 先看结果: var a = Math.random(); console.log(a); consol...[阅读全文]

 
 

抓取文章标题生成树状目录导航

曾经有个项目,前端静态资源服务器的HTML文件全部在同一层目录中,文件名按模块以“-”分隔。随着项目的扩大,文件数不断增加,到最后多达200+个页面文件。在需要定位某个页面时,即便通过搜索,也是一件很头疼的事情。为此需要寻找一种更方...[阅读全文]

 

自定义微信、支付宝二维码

在设计微信二维码分享时,第一感觉是从个人信息导出后直接img链接过去,但细想总感觉并非完美的方案。 首先,导出的二维码样式虽然可以选择背景图、颜色,但选择范围依然有限,无法DIY;其次,微信的二维码和支付宝的二维码显然无法统一,在页面的视觉呈...[阅读全文]