akun76
小狐狸
小狐狸
  • UID27558
  • 注册日期2008-12-23
  • 最后登录2008-12-24
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:5474回复:9

用GreaseMonkey实现跳过图片验证码发帖的问题

楼主#
更多 发布于:2008-12-23 15:15
定义了一个函数:
function aaa(){
  alert('aaa');
}

将原页一个标记改为自己的按钮用于执行上述功能函数:
document.getElementById("oldtag").innerHTML="<input type=button name=bbb value=ccc onclick=\"aaa();\">";

现在遇到个问题,就是不能正确执行。
(若直接写成onclick=\"alert('aaa');\" 这是可以行的)


有哪位高手解答一下吗?
jsjjsj
火狐狸
火狐狸
  • UID15525
  • 注册日期2006-11-06
  • 最后登录2022-07-28
  • 发帖数143
  • 经验13枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
1楼#
发布于:2008-12-23 15:15
这个顶一下,希望能够有结果
98118
禁止发言
禁止发言
  • UID75
  • 注册日期2004-11-23
  • 最后登录2018-05-22
  • 发帖数1271
  • 经验-126枚
  • 威望0点
  • 贡献值-352点
  • 好评度-213点
  • 社区居民
  • 忠实会员
2楼#
发布于:2008-12-23 15:15
用户被禁言,该主题自动屏蔽!
tanker
小狐狸
小狐狸
  • UID23558
  • 注册日期2008-04-05
  • 最后登录2012-04-30
  • 发帖数23
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2008-12-23 15:15
估计不会这么容易解决的。
jruv
小狐狸
小狐狸
  • UID26756
  • 注册日期2008-10-23
  • 最后登录2008-12-03
  • 发帖数22
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2008-12-23 15:15
GM不可能实现这个功能的,除非那个网站的验证码太弱智了,直接有文字形式的映射。
fiag
管理员
管理员
  • UID1188
  • 注册日期2004-12-21
  • 最后登录2024-04-22
  • 发帖数4681
  • 经验686枚
  • 威望0点
  • 贡献值402点
  • 好评度51点
5楼#
发布于:2008-12-23 15:15
var input = document.createElement("input");
input.setAttribute("type","button");
input.setAttribute("name","bbb");
input.setAttribute("value","ccc");
input.onclick = aaa;
document.getElementById("oldtag").insertBefore(input, null);
akun76
小狐狸
小狐狸
  • UID27558
  • 注册日期2008-12-23
  • 最后登录2008-12-24
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2008-12-23 15:15
jruv:GM不可能实现这个功能的,除非那个网站的验证码太弱智了,直接有文字形式的映射。回到原帖


不是,可能我的帖子标题有些误导,确切的说不是“跳过”,而是查出当前验证页面的随机字串以及其对应的正常显示的验证码字符,以后每次发帖时,虽然验证码以及对应的随机串是已变化的,但可使用GM程序重置为之前取出的,在提交表单时,实际由重置值进入服务器端参与验证。

这在国内某知名网站试验已经是可行的。唯一有个问题就是需要有个可控的触发变值的机制,如果按程序自然流程顺序进行,在执行变值时,有些情况是需要变值的对象在客户端还未生成(网速或当前帖数据量等问题)。
akun76
小狐狸
小狐狸
  • UID27558
  • 注册日期2008-12-23
  • 最后登录2008-12-24
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2008-12-23 15:15
fiag
var input = document.createElement("input");
input.setAttribute("type","button");
input.setAttribute("name","bbb");
input.setAttribute("value","ccc");
input.onclick = aaa;
document.getElementById("oldtag").insertBefore(input, null);
回到原帖


米有成功:(
zb0502
小狐狸
小狐狸
  • UID24228
  • 注册日期2008-05-20
  • 最后登录2014-11-11
  • 发帖数86
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
8楼#
发布于:2008-12-23 15:15
试试这个

        document.getElementById("oldtag").addEventListener("click", function(){
            alert('aaa');
        }, false);
akun76
小狐狸
小狐狸
  • UID27558
  • 注册日期2008-12-23
  • 最后登录2008-12-24
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2008-12-23 15:15
zb0502:试试这个

        document.getElementById("oldtag").addEventListener("click", function(){
            alert('aaa');
        }, false);
回到原帖


试了,此计甚妙。
另外我也想了个方式解决:
if(confirm("OK?")){
。。。
}
等页面都下载完毕,相应对象都产生了,再点击OK,在客户端去改相应值。

现在只能做到自动发帖时,帖内容,验证码由GM解决,但只能连发三帖,然后提示验证码不对,看来有问题还需要解决。
游客

返回顶部