分类目录归档:Javascript

浅谈 JS 复制

最近帮朋友做了个简单的小程序,需要点击按钮实现复制 用户名的功能,使用  window.clipboardData 实现了 IE 下的复制功能,遇到 Chrome 就没办法了。百度发现了 Zepto.js,非常好用。

周末闲来无事,发现Chrome/Firefox 支持 Window.getSelection,做了简单的封装,替换掉 Zepto.js,有简化掉了很多代码。

代码比较简单,测试地址:http://www.miaoqiyuan.cn/products/copy.html,代码如下: 继续阅读

FrameController.js – 优雅的处理单页多框架(iframe)窗口管理同步问题

做后台时,不可避免的会遇到 内嵌 iframe 的情况。最近的 一个项目 有客户反馈无法保存,提示 token 错误,。经过沟通发现 是因为打开了 多个内嵌页(iframe),会出现此问题(使用ThinkPHP5自带方法 token(),每次调用都会生成新的Token)。修复方法也很简单,直接在 新增内嵌页时,将新生成的token进行广播。

这种情况在 后台 开发中会经常遇到,把 代码 提取出来,做了一下简单的封装,做成开源项目(https://gitee.com/mqycn/FrameController.js)。

考虑到后台可能要兼容非常老的平台,特别针对 IE7、IE8 做了兼容处理,基本可以实现所有浏览器的兼容。运行效果如下: 继续阅读

一个脚本学会 Promise

感觉之前 对 Promise 理解错误(见之前 2016年的文章:http://www.miaoqiyuan.cn/p/promise),今天周末,抽时间看了 Promise 的文档,确实时理解差太多了。

粗略的看了一个文档,简单的了解了 Promise使用。对于 react-native 中的 API 项目,非常适用( 其实fetch就是一个 Promise实例)。

用 Promise 定义好接口,调用时 最好能统一处理错误,规范为 设计好的数据格式。 文档中 没有 catch 后,能否返回 then的方法。测试结果不能,因为 调用 catch 后,已经时resolved了。如果 catch 继续返回一个 新的 Promise,按 定义的 数据格式,返回一个错误的json, 无视错误,继续操作就完美了。尝试写了一个脚本,实现了我的想法。脚本如下: 继续阅读

原创的jQuery插件:jQueryValidateQY(基本功能已经完成)

最近的项目(手机站),需要实现个前端校验功能,比如大名鼎鼎的 jQuery.validate 插件,太过基础,不能满足现在的需求。另外一点就是 想前后端共用校验规则。

尝试自己写了一个,基于 jQuery,实现了:

1、无论成功或者失败,输入框自动变色(失败为红色,成功为绿色)
2、如果输入出错,自动弹出错误提示层
3、错误、正确的样式,可以通 继续阅读

让IE8和IE9支持 placeholder,原创

最近的项目使用了 主要针对移动端客户,大胆 的使用了 html5 ,到发布的时候,领导有让支持ie8,瞬间头炸掉了。不过有 html5shiv.min.js、respond.min.js,IE8下勉强也可以使用了。

剩下的问题,就是 placeholder 的问题了(这次设计的比较激进,直接取消掉了 input 的输入说明,用placeholder代替)。百度搜索一番,还没有好的改造方法(需要设计程序改动)。

抽了一下午的时间,编写了 placeholder.js,实际实现起来不是很难。

为了便于移植,没有依赖任何框架(比如Jquery),可以直接 Git@OSC去拿。

在IE8中的显示效果:
继续阅读