分类: Programming

浅谈setTimeout与setInterval函数『不为人知』的第三个参数

提到JavaScript下的setTimeout()setInterval()函数,接触过JavaScript的读者一定非常熟悉:两个函数都接收一个函数和一个延时两个参数,前者用于设置超时,后者用于设置定时执行。但其实这两个函数除了以上两个参数外还有第三个参数。

继续阅读 浅谈setTimeout与setInterval函数『不为人知』的第三个参数

JavaScript实现点击contenteditable的span标签后全选标签文字,类似于this.select()方法

在JavaScript中,我们通常使用this.select()实现可编辑文本框中的全选操作,但对于通过添加contenteditable="true"参数来实现可编辑的span标签,这个方案却并不能奏效,需要多写一些代码来实现相同的功能。这篇文章为大家分享一种在可编辑的span标签内实现全选的方法。

继续阅读 JavaScript实现点击contenteditable的span标签后全选标签文字,类似于this.select()方法

三行JavaScript代码屏蔽浏览器的DevTools,保障前端页面的基础安全

尽管大多数浏览器中内置的DevTools为日常开发和调试带来了巨大便利,但在某些需要保证『安全性』的场合,例如在线考试、在线教育、或是一些行业应用,我们也对DevTools『恨之入骨』:抓包、修改数据、插入恶意代码、查看源码、Debug深入原理……
但其实屏蔽DevTools的方法非常简单,简单到只需要三行代码。

继续阅读 三行JavaScript代码屏蔽浏览器的DevTools,保障前端页面的基础安全

React Native调试模式与生产模式之间的切换

不久前我接手了一个React Native项目,需要对应用的逻辑进行修改。然而在我自信满满地修改完js文件,放入模拟器执行时,却发现所有修改均未生效。折腾来折腾去才发现是这个工程已经开启了生产模式,然而应该如何返回到调试模式呢?

继续阅读 React Native调试模式与生产模式之间的切换

如何使用JavaScript判断一个值是否在一个数组中(续)—— JavaScript&TypeScript中的迭代器

『如何使用JavaScript判断一个值是否在一个数组中』一文里,我提到了使用Array.prototype.includes()Array.prototype.indexOf()两种方法来实现这一需求,但其实对于JavaScript这样一门极为灵活的语言来说,实现方法远不止以上两种。

继续阅读 如何使用JavaScript判断一个值是否在一个数组中(续)—— JavaScript&TypeScript中的迭代器

iOS开发之——如何灵活控制状态栏文字颜色(Swift版)

在iOS软件开发中,经常会遇到需要灵活控制状态栏文字颜色的情况,然而网上的资料要么是通过修改info.plist实现全局颜色配置,要么是通过直接在ViewController中直接override默认颜色配置(UIStatusBarStyle.preferredStatusBarStyle,iOS9.0之后官方推荐的配置方式),依旧无法实现灵活配置(即事件可触发的)状态栏颜色修改。这篇文章便来向大家介绍一下如何简单实现状态栏文字颜色的灵活修改。

继续阅读 iOS开发之——如何灵活控制状态栏文字颜色(Swift版)

使用轻量插件,轻松美化prompt()与alert()

由于prompt()在不同浏览器下的实现有着巨大差异,甚至有个别浏览器不提供对prompt()的支持,因此定制这个对话框在对用户体验有较高要求的场景下显得非常重要。然而通常用于实现这个功能的库要么过于庞大、要么配置复杂、要么侵入性强,需要对现有的网页进行较多改动,但有一个小众的库却脱颖而出,体积小(gzip后仅4.5kb),效果好。这就是这篇文章要介绍的Prompt-Zepto
继续阅读 使用轻量插件,轻松美化prompt()与alert()

该暴力时必暴力——论alert()及其不知名的两个兄弟

尽管由于工作需要,我不得不写大量的前端代码,但我依旧没有胆量自诩『前端程序员』,也并未花多数精力在钻研前端上。当alert()与其不甚知名的两个兄弟走入我的世界之时,我竟然有点惊喜,因为我又学到了更多的Tricks,又可以“偷懒”了!
继续阅读 该暴力时必暴力——论alert()及其不知名的两个兄弟