写了一个CU论坛用的FX的GreaseMonkey的帖子自动保存/恢复插件
2007-09-17 | 18:37时常有时候遇到什么非法提交,或者正繁忙,或者是来路不明的提示~~~ dz论坛在ie下有个帖子提交后恢复数据的功能,我看了下cu的,在ie下可以正确显示,其源代码js中也写了关于moz/firefox的支持部分,理论上在fx下也应该是可以正常工作的,但是在我的fx 2.0.0.x下偏偏却不行呢~~~???
所以我就自己简单地写了一个,由于GreaseMonkey不熟悉,fx下的js代码部分又有不少和ie有差异,因此这个程序写得尽量比较简单,就是提交的时候获取提交按钮的onclick属性并把当前的文本记录到gm内部的一个变量里,如果需要恢复,选旁边的恢复按钮(用js生成的)就提取出来。比较遗憾的由于能力原因和钻研精神不足,对Ctrl+Enter的提交方式,会导致帖子内容不被记录,因此也就不能恢复了~~~脚本很简单,稍作修改也能用于其他的论坛或者需要的地方~~~用着fx的朋友,如果有兴趣的用用看吧?
标签:CU, script, tor, unix, 朋友, 脚本// ==UserScript==
// @name restore content for CU
// @namespace
bbs.chinaunix.net// @include http://bbs.chinaunix.net/*
var theButton;
var the_My_Form = new Array();
//取得提交按钮
theButton = document.getElementById('postsubmit');//取得文本框的数组,由于在页面里只有一个文本框,所以下面只用到了该数组的[0]成员
the_my_Form = document.getElementsByTagName('textarea');if (theButton) {
//为了测试是否脚本无错,我设置了将默认的提交按钮变成黄色,不喜欢可以将这行去掉
theButton.style.color = "yellow";//给提交按钮添加一个onClick属性,方便我们加入自己的保存文本函数
theButton.addEventListener('click', event_save, false);//生成一个新的按钮,下面几行是这个按钮的type、class、id、value、onClick属性,由于GM是utf-8编码,和cu的gbk编码不一致,所以按钮的显示文字无法用中文
newElement = document.createElement('input');
newElement.type = "button";
newElement.className = "lightbutton";
newElement.id="restoredata";
newElement.value="Restore_Data";
newElement.addEventListener('click', event_restore, false);//这个新的按钮的添加位置为原来的提交按钮之前
theButton.parentNode.insertBefore(newElement, theButton);
}function event_save(evt){
//将输入的文本框内容提交到GM内置变量cu_lastcontent中(关闭浏览器也可保存),由于编码原因,先将内容编码后再存入GreaseMonkey的内置存储空间,GM_setValue和GM_getValue为GM 0.3版本以上支持
GM_setValue('cu_lastcontent',encodeURI(the_my_Form[0].value));}
function event_restore(evt){
if (confirm ("Do you want restore content?")) {
//将取出的内容解码后,显示在文本框内
the_my_Form[0].value = decodeURI(GM_getValue('cu_lastcontent'));
}
}
相关日志





