不服自己都不行,IE+FF执行脚本完美解决方案。

不服自己都不行,IE+FF执行脚本完美解决方案。

起因:

  最近经常在水源灌水,在水源干得最多的事情当然就是接分。

  我偶尔也散分还攒分(没攒怎么散,没散怎么接)。

  接分的时候看见刷楼的有点不爽(他们得分多生星快)。也难怪有那么多刷楼的:楼主一般都是平均给分(CSDN提供 “平均给分”的功能就是按楼的,刷楼越多得分几率越大)。

  所以我散分一般都是靠手工结贴。但是楼一多,输入起来真浪费我宝贵的时间。包括我在内就有了“平均给分,按人分配”的需求。见:cpio 闹心,散分的时候为什么总有人为了分使劲回复呢,平均给分能不能设置成按人头算啊?

  特别是那天散了一个“MD5() 的帖子至少有126楼,计算规则相当复杂,手工结贴太费时,只能写了个程序辅助,实现程序就必须分析帖子的html元素。MD5()帖子一结,觉得“平均给分,按人分配”的代码就基本有了!不过,单独发布一个功能这样简单的程序不适合。需运粮一下其他功能。

  过不了几天碰巧看见大兔子发的帖子“结帖工具---回复统计机”。可以统计一个帖子里每个人回复了多少次。功能是用Javascript完成的。不过要装什么插件,本人向来不喜欢有多余的插件在ie里(被流氓软件烦怕),所以只吸取了用脚本完成“平均给分,按人分配”想法。

 

过程:

  我发布的工具一定要是绿色环保的:解压即用、不写注册表、不访问网络、不乱写文件。

 

  IE脚本辅助工具就诞生了,发布后加上我的几个小广告效果还理想:目前113人下载(4.93分,满分10)。

  为了推广,得写一些精彩的脚本:比如给雅蛋统计一下报名人数、使回复变成渐变色。现在继续写2.0。不过,一个苦恼的问题出现了:如何在Firefox也能用上?目前我只知道如何跨进程执行IE脚本。(也许就是那瞬间的灵感)将脚本放到地址栏执行最原始的方法就是能兼容IEFF的办法!试探一下能否跨进程访问FF的地址栏?郁闷也不容易,那不是标准的Edit控件。FF不是有标签吗?能不能把脚本保存为标签?….于是光明看到了!

 

方案:

  首先得有脚本。(巧妇难为无米之炊)

  你的将脚本变成单行的。(换行字符替换为空格,如果你不是程序员,那就找现成的吧)

  假设脚本是:“javascript:alert("Hello world");

  [Firefox]

  Firefox菜单->书签->管理书签

  打开书签管理器,添加新书签

  “地址”中输入那一行javascript即可,然后到书签里点点看

  对话框出来了吧!没骗你吧!好了,到此为止FF搞定了!

[Internet Explorer]

  IE里还没找到什么地方直接添加收藏夹的链接快捷方式,那就随便找个链接快捷方式来修改算了。

  嗬,不给面子。哦,原来是“是”和“否”的选中。那就选“是”呗。

和FF一样简单。

  到收藏夹里看看,是不是多了一个Hello!提示还是“脚本”

  点点看吧。IE就这样搞定了。接下来就是自由发挥时间^o^

 

  当然我的脚本可没这样简单。

[InternetShortcut]

URL=javascript:function getEditor() { var replyframe = parent.document.getElementById("replyframe"); if (replyframe) { return replyframe.contentWindow.document.getElementById("tb_ReplyBody___Editor"); } else { return document.getElementById("ctl00_ctl00_CPH_Content_CPH_BaseContent_tb_TopicBody___Editor"); } } function setEditorText(value) { var editor = getEditor(); if (editor) { editor.value = value; editor.focus(); } } function getEditorText() { var editor = getEditor(); if (editor) return editor.value; } function colorFormat(color) { var s = color.toString(16); var l = s.length; return "#" + "000000".substring(l) + s; } function getRValue(color) { return color & 0xFF; } function getGValue(color) { return (color >> 8) & 0xFF; } function getBValue(color) { return (color >> 16) & 0xFF; } function RGB(r, g, b) { return r | (g << 8) | (b <<16); } var startColor = 0x1000000 * Math.random(); var endColor = 0x1000000 * Math.random(); var str = getEditorText(); if (str.length > 0 && str.indexOf("[/color]") < 0) { var output = ""; var lastFormat = ""; var currFormat = ""; var redSpace = getRValue(endColor) - getRValue(startColor); var greenSpace = getGValue(endColor) - getGValue(startColor); var blueSpace = getBValue(endColor) - getBValue(startColor); for (var i = 0; i < str.length; i++) { if (//s/.test(str.charAt(i))) { output = output + str.charAt(i); continue; } currFormat = colorFormat(RGB( getRValue(startColor) + (i / str.length * redSpace), getGValue(startColor) + (i / str.length * greenSpace), getBValue(startColor) + (i / str.length * blueSpace))); if (lastFormat != currFormat) { if (lastFormat.length > 0) output = output + "[/color]"; output = output + "[color=" + currFormat + "]"; } lastFormat = currFormat; output = output + str.charAt(i); } if (lastFormat.length > 0) output = output + "[/color]"; setEditorText(output); } else { alert("已经上过色了!"); }

 
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页