所以我给第一页和宏必须访问这个网站的所有页面。 (打开每个页面的新选项卡)
这是我在网上找到的,但是这个宏访问只链接在一个起始页面,而不是深入访问第二级。
谢谢你的帮助!
//imacros-js:showsteps no
//Testing forum post http://forum.iopus.com/viewtopic.php?f=11&t=7537&sid=2103c60e70f9c7051dcda5264874a488
//Idea is to read something in common on the page and open each link in a new tab.
var macro, retcode, url="", pos=1, stop=false;
while(!stop)
{
macro="CODE:";
macro+="TAB T=1\n";
//macro+="TAG POS="+pos+" TYPE=A EXTRACT=HREF\n";
macro+="TAG POS="+pos+" TYPE=A ATTR=HREF:* EXTRACT=HREF\n";
//ATTR=CLASS:*topictitle*
retcode = iimPlay(macro);
if (retcode < 0) // an error has occured
{
errtext = iimGetLastError();
alert("1st Error "+retcode+": "+errtext);
stop=true;
}
//Stop if extract found nothing or counter is too high as a precaution
if((url = iimGetLastExtract()) == "#EANF#" || pos > 10000)
{
stop=true;
break;
}
else
{
macro="CODE:";
macro+="SET !TIMEOUT 15\n";
macro+="SET !ERRORIGNORE YES\n";
macro+="TAB T=1\n";
macro+="TAB NEW OPEN\n";
macro+="TAB T="+new Number(pos+1)+"\n";
macro+="URL GOTO="+url+"\n";
macro+="TAB T=1\n";
retcode = iimPlay(macro);
if (retcode < 0) // an error has occured
{
errtext = iimGetLastError();
alert("2nd Error "+retcode+": "+errtext);
stop=true;
}
pos++;
}
}
答案 0 :(得分:0)
此代码基本上可以找到页面上的所有链接。然后它提取href,并在变量宏中构造一个新的宏。然后它以最后一个命令retcode = iimPlay(macro)
运行
你想要的是一个递归函数,它不仅为href的查找打开一个新选项卡,而且还在它指向的页面上运行相同的函数。
所以你应该把上面的代码变成一个接受URL作为参数的函数。然后当imacros找到并链接时,使用链接href调用该函数。