nightwind
火狐狸
火狐狸
  • UID17949
  • 注册日期2007-04-11
  • 最后登录2017-09-05
  • 发帖数271
  • 经验58枚
  • 威望0点
  • 贡献值54点
  • 好评度2点
  • 社区居民
  • 忠实会员
阅读:3541回复:8

谁能做这样一个脚本?[选中复选框]

楼主#
更多 发布于:2007-09-06 20:14
只是我的一种需求:
就是当进入discuz论坛时,遇到“接收新回复邮件通知”这个复选框,把它默认设置为选中的。

因为现在的discuz论坛这个选项都是默认设置为未选中的,而且个人属性里也没有这一块儿的设置,所以想做一个脚本,能够实现进入这样的页面,能够自动选中这个复选框。
苹果及DELL代理,有需要联系,Cuixiaodi.com
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-05-09
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
1楼#
发布于:2007-09-06 20:14
我不会js,但是我想应该是可以作到的,就是修改这里的checkbox 的属性为check,我也见过类似的脚本.不过脚本应用的地址就不好办了.毕竟有很多的discuz论坛啊.难道要每个论坛都指定?
Firefox More than meets your experience
dangerboy_dx
非常火狐
非常火狐
  • UID9755
  • 注册日期2005-11-12
  • 最后登录2023-09-24
  • 发帖数969
  • 经验108枚
  • 威望0点
  • 贡献值82点
  • 好评度7点
  • 社区居民
  • 忠实会员
2楼#
发布于:2007-09-06 20:14
-___- ,楼主又提出了个古怪的要求.
与其求助于他人,不如自己找几个例子学习一下,自己搞定.
xoferiF
热心会员
热心会员
  • UID6559
  • 注册日期2005-06-05
  • 最后登录2020-04-24
  • 发帖数418
  • 经验24枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
  • 忠实会员
3楼#
发布于:2007-09-06 20:14
很容易,用GreaseMonkey
nightwind
火狐狸
火狐狸
  • UID17949
  • 注册日期2007-04-11
  • 最后登录2017-09-05
  • 发帖数271
  • 经验58枚
  • 威望0点
  • 贡献值54点
  • 好评度2点
  • 社区居民
  • 忠实会员
4楼#
发布于:2007-09-06 20:14
ZTree Forum - autocheck e-mail notification
http://userscripts.org/scripts/show/3031

找到这样一个脚本,离目标很近了
不过它只适用于ZTree论坛、
怎么修改让他能适用于
http://bbs.ioage.com/cn/forumdisplay.php?fid=8
代码看不懂哦~~

这是猴子的脚本代码

# // ==UserScript==
# // @name        ZTree Forum - autocheck e-mail notification
# // @namespace    http://2of4.net/mozilla/greasemonkey/userscripts/ztw3.com/checkbox/
# // @description    Checks all the checkboxes in the forum (currently there is only one: 'Notify me of responses by e-mail')
# // @include        http://www.ztw3.com/forum/forum.cgi?read=*
# // @include        http://www.ztw3.com/forum/forum.cgi?review=*
# // ==/UserScript==
#
# (function() {
#     var lstrXPath = "/html/body/form//input[@type='checkbox']";
#     var lxmlSnapshot = document.evaluate( lstrXPath
#                                       , document
#                                       , null
#                                       , XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE
#                                       , null);
#     for (var lnumIndex = 0, lhtmlCheckbox;
#             lhtmlCheckbox = lxmlSnapshot.snapshotItem(lnumIndex);
#             lnumIndex++) {
#         lhtmlCheckbox.checked = true;
#     }
# })();


[/url]
苹果及DELL代理,有需要联系,Cuixiaodi.com
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
5楼#
发布于:2007-09-06 20:14
http://www.box.net/shared/ba68knpelo

下载SelectingEmailNotify,然后从本地硬盘点住下载的文件往firefox窗口里扔,最后刷新网页。
nightwind
火狐狸
火狐狸
  • UID17949
  • 注册日期2007-04-11
  • 最后登录2017-09-05
  • 发帖数271
  • 经验58枚
  • 威望0点
  • 贡献值54点
  • 好评度2点
  • 社区居民
  • 忠实会员
6楼#
发布于:2007-09-06 20:14
十分感谢,还想继续深问一下
var node = document.getElementById("parseurloff");
  var	children = node.parentNode.getElementsByTagName("Input");
  children[children.length-1].checked = true;


这个是什么思路?判断复选框数量,然后把最后一个选定?
谢谢
苹果及DELL代理,有需要联系,Cuixiaodi.com
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
7楼#
发布于:2007-09-06 20:14
十分感谢,还想继续深问一下
var node = document.getElementById("parseurloff");
  var	children = node.parentNode.getElementsByTagName("Input");
  children[children.length-1].checked = true;


这个是什么思路?判断复选框数量,然后把最后一个选定?
谢谢


思路很简单,用javascript找到对应的input checkbox元素,将其checked属性设置为true。

于是,要找到一个元素最简单办法就是通过getElementById。用firebug来inspect,发现这个元素没有id属性,只有name。 我记得好像firefox不支持通过name找元素。
可巧,发现上面的input元素又有id。 于是开始绕圈子,用那个id找到节点对象,然后用节点对象找到它的爸爸节点对象,用爸爸节点对象把所有儿子节点对象全找出来,设定最后一个为true。 就是你要的那个。

不过,我的代码还有一个漏洞,就是如果你没有登录,就不会有那个快速回复textarea,也就找不到那个id,javascript 控制台就会报错。 这个影响不大。也许写成下面这样就好了。 没有做测试。

var node = document.getElementById("parseurloff");
if(node)
{
  var   children = node.parentNode.getElementsByTagName("Input");
  children[children.length-1].checked = true;
}
nightwind
火狐狸
火狐狸
  • UID17949
  • 注册日期2007-04-11
  • 最后登录2017-09-05
  • 发帖数271
  • 经验58枚
  • 威望0点
  • 贡献值54点
  • 好评度2点
  • 社区居民
  • 忠实会员
8楼#
发布于:2007-09-06 20:14
我这里没登陆没遇到报错啊~~

还是谢谢啦 以后多跟您学了~~
苹果及DELL代理,有需要联系,Cuixiaodi.com
游客

返回顶部