Imacros - 检查文本是否退出(javascript)

时间:2017-03-14 18:40:59

标签: javascript text imacros

我已经搜索了很多帖子,但仍然无法使用它。

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

我看到一些答案说使用“文档”。这不起作用。 我见过有人说使用“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");
}

^脚本运行的地方......完成。它不会抛出错误,但它也不会抛出警报。它结束了。

那我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果您的宏中没有SET!ERRORIGNORE YES命令,您会看到iMacros正在抛出一个'分配大小溢出'异常,很可能是因为它提取的文本量太大而无法处理。

但是我刚刚使用以前版本的iMacros for Firefox测试了你的脚本,它没有这个问题,因此它必须是当前版本(9.0.3)的错误。在这种情况下,我建议降级到以前的版本(8.9.7):

http://wiki.imacros.net/iMacros_for_Firefox#How_to_Downgrade

答案 1 :(得分:0)

您不应该忘记网页可能包含多个框架,因此请先在此页面上尝试以下脚本:

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;
    }
}