* 标签为 'JavaScript' 的日志

跨浏览器“复制到剪贴板”的解决方案

众所周知,firefox的安全性比较高,但是安全带来的弊端就是很多功能不支持。比如说在IE下可以通过脚本来设当前网页为首页,firefox却不行。今天要讨论的是另外一个问题:怎么在firefox等不支持window.clipboardData的浏览器下实现复制呢?

首先,我们来看网易邮箱是怎么解决这个问题的。我们在firefox下进到写邮件页面,点击编辑器上的全部功能,然后点击左边的“复制”按钮,“您的浏览器安全设置不允许编辑器自动执行拷贝操作,请使用键盘快捷键(Ctrl+C)来完成”,网易邮箱给了我们这么一个提示。我觉得这个解决方案可以得80分,因为它告诉了我们两个信息:其一,之所以复制操作没有完成是因为我的浏览器很安全,为了安全损失一点用户体验一般用户是可以接受的;其二,它还提示了我们可以通过键盘快捷键ctrl+c来完成操作,这对刚上网的新手来说很人性化。但是,有没有更好的解决方案呢? Continue Reading

慎用keyup事件

手册上对onkeydown的描述为“Fires when the user presses a key”,onkeyup的描述为“Fires when the user releases a key”,onkeypress的描述为”Fires when the user presses an alphanumeric key”,一个是键盘按键按下时触发,一个是按键弹起时触发,另一个是按下键盘的数字、字符键触发。为什么说要慎用keyup呢?

设想有这么一种情况,在web页面上有一个模拟的弹出窗口,很流行的那种,然后我们监听keyup事件,如果发现keyCode等于27,也就是说用户按了ESC键的时候隐藏窗口,这样能方便一部分高级用户,Google文档也这么做。但是如果弹出窗口中有一个输入框,情况就不那么妙了。因为我们通常用的输入法都有一个候选词的浮动窗口,有时候打错字了需要关闭这个浮动框口也会用到ESC,这个时候你会发现一旦按下ESC,输入法的候选词窗口连同那个弹出层一起消失了。 Continue Reading

一个超简单的WP评论表情插件

换上新博客平台以来的这几天,我一直在研究wp系统,我发现它的架构还是有不少亮点的,尤其是插件系统,强大得让我也跃跃欲试。于是就有了reply-face这个超简单的评论表情插件。

由于我对php以及wp api还不很了解,所以这个插件主要是靠js来实现表情插入和呈现的。这样做有好处:由于是客户端用正则表达式将表情字符转换为表情图片,所以不会占用服务器任何资源。本插件实际运行效果见文后评论处

默认表情是老版QQ的,为了减少请求次数,选择表情时用的一张大图片,所以看上去不会动,提交评论后表情字符会被gif小图替换,会动的。JS文件大小3k,加载起来应该很快。

跨浏览器的本地存储解决方案

有时候我们在前端开发中为了提高用户体验,减少向服务器请求的次数,常常要在用户的电脑上存储数据,即要实现浏览器的本地存储数据功能。我在这里整理了一下常用的几种方案。 Continue Reading