Javascript的小把戏

今天听秋实说,他写好Blog之后没有备份,提交失败后文字全部浮云。于是我立即想起了以前数次类似的“惨痛教训”。于是就在Blog程序的编辑器中加入了自动将内容备份到剪贴板的功能。这样,除非系统崩溃剪贴板中的内容消失,否则浏览器崩溃(尤其是Maxthon)、网络断流等等的问题都可以轻松应付。
其实将值复制到剪贴板非常简单,只需要一句Javascript即可。代码如下:
window.clipboardData.setData('Text', document.input.message.value);
setData方法的第一个参数是数据类型,可以是URL或者Text,使用Text会将内容存储为文本格式。第二个参数是要复制到剪贴板里的内容,这里指定为document.input.message.value的意思是name为“input”的表单中的name为“messgae”的文本框中的内容(value)。
只要将这段代码加在表单的onSubmit属性中即可,这样就能做到表单提交的时候自动执行这段代码,将文本框的内容复制到剪贴板,免得出现辛苦写的东西全部浮云的“囧”境。

其实这段代码只要稍加变通,即可实现更加丰富的功能。
将上面的代码放进函数,方便调用:
function backup_msg2clip() {
window.clipboardData.setData('Text', document.input.message.value);
}
之后再在页面中加入:
window.setInterval("backup_msg2clip()",10000);
通过setInterval方法设定每10(把10000改成600000就是60秒了)秒钟执行一次backup_msg2clip(),这样就相当于每10秒钟备份一次。但是这样也有缺点,那就是在编写文章的时候,剪贴板被文章内容独占,如果此时想从别的文章中copy一些内容过来,那可真要做到“眼疾手快”,要在10秒钟内ctrl+c,回到编辑器再ctrl+v,可真够紧张的。
既然这样,我们就同样将上面代码放进函数,只在需要的时候执行。
function start_backup() {
window.setInterval("backup_msg2clip()",10000);
}
之后再创建一个链接:
<A href="javascript:start_backup()">(每10秒钟自动将内容备份至剪贴板)</a>
只有点击这个链接后,自动备份功能才会启动。

如果觉得这样还不保险,可以通过#default#savehistory防止后退清空文本框。
在表单的HTML标签中加入style属性,值为“behavior:url(#default#savehistory);”,这样提交表单之后再后退,文本框就不会被清空,依然保持着提交之前的样子。

怎么样,如此一来,无论是在CMS还是Blog中写东西,安全感都大多了吧。

题外话:
今天更新了Waki-Blog,除了前面提到的后台编辑器更新以外,还修改了bbcode解析部分。解析code代码的时候,自动将代码中引号前面的斜杠去掉,并将特殊字符转换为html标号,以防止引用的代码中的html语句被浏览器执行。

话题:Waki-Blog 互联网与IT Javascript

Javascript的小把戏有 0 条回应

发表回应

 
如果您是注册用户,请先登录。
昵称 (*)
E-Mail (*)
(不会公开)
网站
留言 (*)
悄悄话
有(*)标记的是必填项目。