有一些变态网页,会有一大堆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秒自动展开下一个“+”了。