Javascript的小把戏
今天听秋实说,他写好Blog之后没有备份,提交失败后文字全部浮云。于是我立即想起了以前数次类似的“惨痛教训”。于是就在Blog程序的编辑器中加入了自动将内容备份到剪贴板的功能。这样,除非系统崩溃剪贴板中的内容消失,否则浏览器崩溃(尤其是Maxthon)、网络断流等等的问题都可以轻松应付。
其实将值复制到剪贴板非常简单,只需要一句Javascript即可。代码如下:setData方法的第一个参数是数据类型,可以是URL或者Text,使用Text会将内容存储为文本格式。第二个参数是要复制到剪贴板里的内容,这里指定为document.input.message.value的意思是name为“input”的表单中的name为“messgae”的文本框中的内容(value)。
window.clipboardData.setData('Text', document.input.message.value);
只要将这段代码加在表单的onSubmit属性中即可,这样就能做到表单提交的时候自动执行这段代码,将文本框的内容复制到剪贴板,免得出现辛苦写的东西全部浮云的“囧”境。
其实这段代码只要稍加变通,即可实现更加丰富的功能。
将上面的代码放进函数,方便调用:之后再在页面中加入:
function backup_msg2clip() {
window.clipboardData.setData('Text', document.input.message.value);
}通过setInterval方法设定每10(把10000改成600000就是60秒了)秒钟执行一次backup_msg2clip(),这样就相当于每10秒钟备份一次。但是这样也有缺点,那就是在编写文章的时候,剪贴板被文章内容独占,如果此时想从别的文章中copy一些内容过来,那可真要做到“眼疾手快”,要在10秒钟内ctrl+c,回到编辑器再ctrl+v,可真够紧张的。
window.setInterval("backup_msg2clip()",10000);
既然这样,我们就同样将上面代码放进函数,只在需要的时候执行。之后再创建一个链接:
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语句被浏览器执行。

Javascript的小把戏有 0 条回应
发表回应