postMessage解决跨域、跨窗口消息传递

最近遇到一个需求,页面嵌入了iframe框,iframe框里是一个Im在线聊天对话框。在用户切换聊天对象时,外层页面也需要获取当前用户正在聊天的对方的userid。但是由于im页面是嵌入的iframe,外层父页面既无法监听切换聊天对象的事件,也无法获取里面的dom元素,会报跨域的错误。为了解决这一问题,可以使用html5的APIpostMessage.

阅读更多...

js中文输入法字符串截断问题解决

最近遇到了一个需求:一个输入框最大输入字数为7个字,用户输入超出7个字时,显示警告提示,并且阻止用户输入。 用input propertychange事件可以监听到用户的输入,在英文或者数字输入状态是没有问题的。但是在中文输入法输入情况下,不同浏览器有不同的表现。有的浏览器会在输入拼音时就会进入判断,如果拼音就已经超过7个字符,就不能再继续输入。如下:1234567891011121314<input id="test"/>

阅读更多...

jQuery性能优化

jQuery已经成为前端开发中重要的类库之一,也是前端开发er的一个利器,了解到如何正确使用jQuery达到最佳性能是一个很重要的事。下面从各个方面来总结一下jQuery性能优化技巧和注意事项。

阅读更多...

不是只有if和else

在我们写javascript函数的时候,经常会使用到条件判断,使用得最多的就是if else进行判断了。使用得多了渐渐会特别依赖这个最简单的方法,而导致整个函数里好多if else,甚至嵌套很多层。仔细研究,我们会发现用一大段if else的逻辑,其实用其他方法,一句话就能够完全实现同样的功能。 初级替代之一:三元表达式var max = a>b?a:b; 三元表达式的规则就是,当”?”前的表达式为true时,返回”:”前的值,否

阅读更多...

JavaScript实践

命名代码是给人(别人或者1个星期后的 自己)阅读和修改的 給变量和函数一个简单易懂的名字 可维护性++ 以功能命名,而不是表现 isOverSeven() × VS isLegalAge() √ // 不好的命名 aaaa x1 f hengxian createNewUserIfTheInputIsValida te 避免全局变量 我们无法拥有代码的控制权 不易维护 牵一发而动全身 易被覆盖

阅读更多...

好玩的cookie

最近接触了cookie,发现浏览器cookie真的挺好玩的,前端做的事也可以在网页关闭或刷新后依然存在,多难得啊(被用户清除了cookie就没办法了…)。cookie可以帮助前端实现一些用户行为储存,进而实现一些针对用户的操作。

阅读更多...