自己写js代替手工点击

有一些变态网页,会有一大堆radio或者checkbox让用户去点,或者有很多+要逐个展开,如果经常使用这样的功能,手工一个个的去点是很笨的做法,如果结合我原来介绍过的用js丰富你的书签功能,自己写点javascript就方便多啦。

例如,网页上有几百个+需要展开,而+部分的html代码如下:

<img src=”collapse.gif” title=”展开列表” style=”cursor:hand” onclick=”uf_Expand(this, ‘6’, ‘909.2500’)”>

其中onclick动作调用的uf_Expand就是实现展开的函数,于是,我们可以遍历所有的img对象,利用src=”collapse.gif”来辨别这是一个点击展开的“+”(如果能配合id来使用当然更好啦),然后调用它的onclick动作:

javascript: void( ( function() { var img=document.getElementsByTagName(“img”); var length=img.length; for (var i=0;i<length;i++) { obj=img[i]; if (“http://www.fwolf.com/collapse.gif”==obj.src) { obj.onclick(); } } } ) () );

注意img的src属性和html中看到的并不完全一样,加上了前面的域名部分,这是浏览器在解析html的时候自动加上的。现在只需我们轻轻点一下做好的书签按钮,就可以展开所有的+了。

还有一种情况,那就是两次展开之间需要一定的时间间隔,毕竟谁的服务器也无法承受一下子多出几百次请求,一般这种情况的解决都是写两个函数,一个为启动函数,使用setTimeout方法启动另外一个主体函数,主体函数在作完一次处理之后,再使用setTimeout调用自身。由于我们这里需要作的处理比较简单,所以也可以采取直接setTimeout,通过增加timeout时间的方式来实现。只需把上例代码中的“obj.onclick();”这一行更改为:

setTimeout(“document.getElementsByTagName(‘img’)[” + i + “].onclick()”, 3000*i);

就可以实现每隔3秒自动展开下一个“+”了。

Leave a Reply

Your email address will not be published. Required fields are marked *