Imacros-检查文本是否存在(javascript)
我已经搜索了这么多的帖子,但仍然无法实现 我需要的是简单地检查网站上是否存在某个单词。(Imacros for Firefox)使用javascript 我看到一些答案说使用“文档”。那不行。 我见过一些人说使用“window.document”。这就产生了一个错误,表示多进程firefox不支持它。 有些人说做了类似的事情,但也不起作用 我也发现了这个Imacros-检查文本是否存在(javascript),javascript,text,imacros,Javascript,Text,Imacros,我已经搜索了这么多的帖子,但仍然无法实现 我需要的是简单地检查网站上是否存在某个单词。(Imacros for Firefox)使用javascript 我看到一些答案说使用“文档”。那不行。 我见过一些人说使用“window.document”。这就产生了一个错误,表示多进程firefox不支持它。 有些人说做了类似的事情,但也不起作用 我也发现了这个 var macro; macro ="CODE:"; macro +="SET !ERRORIGNORE YES"+"\n"; macro
var macro;
macro ="CODE:";
macro +="SET !ERRORIGNORE YES"+"\n";
macro +="TAG POS=1 TYPE=HTML ATTR=TXT:* EXTRACT=TXT"+"\n";
iimPlay(macro)
var text=iimGetLastExtract();
if(text.search("Hello World")!=-1)
{
alert("Found the text");
}
^脚本运行并…完成的地方。它不会抛出错误,但也不会抛出警报。就这样结束了
那我该怎么做呢?如果你没有电视机!ERRORIGNORE YES命令在宏中,您会看到iMacros抛出“分配大小溢出”异常,很可能是因为它提取的文本量太大,无法处理 但是我刚刚用Firefox的iMacros的早期版本测试了你的脚本,它没有这个问题,所以它一定是当前版本(9.0.3)的一个bug。在这种情况下,我建议降级到以前的版本(8.9.7):
您不应该忘记一个网页可能包含多个框架,因此请首先在此网页上尝试以下脚本:
for (i = 0; ; i++) {
var ret = iimPlayCode("SET !TIMEOUT_STEP 1" + "\n" + "FRAME F=" + i + "\n" + "TAG POS=1 TYPE=BODY ATTR=* EXTRACT=TXT");
if (ret != 1) {
// alert("Not found the text");
break;
}
if (iimGetExtract().indexOf("Imacros - check if text exits (javascript)") > -1) {
alert("Found the text");
break;
}
}
iimPlay
和iimGetLastExtract
是否定义在某个地方?当您使用iimPlay(“example.iim”)时,它在iMacros中;在javascript文件中,它将运行Documents/iMacrosstill中的.iim文件,该文件似乎不会以任何方式提醒我任何事情,脚本将运行、完成并停止。你能解释一下吗?更新:我已经用“iimDisplay();”测试了脚本它不显示“警报”,而是始终显示“if(ret!=1)”代码所在的消息,而不管“Hello World”是否存在,并且从不显示“if(iimGetExtract()).search'消息。@DenisDelinger。请参阅我答案中的说明。很可能是由于“分配大小溢出”错误,宏返回了错误代码-1001。您可以通过调用alert(ret)查看返回值在iimPlayCode调用之后。如果您直接在浏览器中运行宏而不是从.js脚本运行宏,您也会看到它。我相当确定您需要降级才能正确运行。我已经编辑了一点代码。请尝试在此页面上播放它。它对您有用吗?