分类目录归档:Javascript

一个脚本学会 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中的显示效果:
继续阅读

angularjs的数组传参方式的简单实现

初学 angularjs时,对 数组传参方式感到很好奇([‘a’, ‘b’, function(a,b){}]),它到底怎么实现的呢?后来由于工作很忙,对这个问题也就慢慢忘记了。

今天闲来无事,有想到了这个问题。最简单的方法就是查看他的源代码。无奈本人E文不好,不说看他的设计逻辑,仅看英文注释就够我头疼了。尝试闭门造车,最终竟然把车造出来了。

既然自己造的车,就要带上自己的名(取姓名拼音第一个字母),就叫他mqyJs把,下面是演示的调用方法:

var app2 = mqyJs.applicationCreate([{ name: '直接传入SCOPE' }, '$hello', '$world', function($scope, $hello, $world) {
    return $scope.name + ": " + $hello.name + $world.name;
}]);

核心部分如下: 继续阅读

通过 UserAgent 判断是否在我们自己的安卓APP中

之前 写过一篇 根据 UserAgent 判断网页是在浏览器、或在微信、或在APP中 (http://www.miaoqiyuan.cn/p/useragent-in-where),那篇文章能通过 UserAgent 判断出 是否在微信、浏览器或者其他APP中,如果需要判断是否在我们自己开发的APP中,就无能为力了。

WebView 提供了 setUserAgentString,可以任意修改 UserAgent。我们只需要在 UserAgent 中增加 自定义的 字符串,就可以在网页中通过JS判断是否在我们自己的APP内。

MainActivity.java 的代码如下: 继续阅读