Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Imacros-检查文本是否存在(javascript)_Javascript_Text_Imacros - Fatal编程技术网

Imacros-检查文本是否存在(javascript)

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

我已经搜索了这么多的帖子,但仍然无法实现

我需要的是简单地检查网站上是否存在某个单词。(Imacros for Firefox)使用javascript

我看到一些答案说使用“文档”。那不行。 我见过一些人说使用“window.document”。这就产生了一个错误,表示多进程firefox不支持它。 有些人说做了类似的事情,但也不起作用

我也发现了这个

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脚本运行宏,您也会看到它。我相当确定您需要降级才能正确运行。我已经编辑了一点代码。请尝试在此页面上播放它。它对您有用吗?