首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Imacros -检查文本是否存在(javascript)

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

Stack Overflow用户
提问于 2017-03-15 02:40:59
回答 2查看 1.3K关注 0票数 0

我已经搜索了这么多帖子,但还是不能让它起作用。

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

我看过一些答案说要使用“文档”。这不管用。我见过一些人说用"window.document“。这会给出一个错误,说明它在多进程firefox中不受支持。一些人说要做类似的事情,但也不起作用。

我还发现了这个;

代码语言:javascript
运行
复制
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");
}

^,其中脚本只运行and...finishes。它不会抛出错误,但也不会抛出警报。它就这么结束了。

那么我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2017-03-15 15:27:46

如果您的宏中没有SET !ERRORIGNORE YES命令,您将看到iMacros抛出了一个'allocation size overflow‘异常,很可能是因为它提取的文本量太大而无法处理。

但是我刚刚用火狐上一个版本的iMacros测试了你的脚本,它没有这个问题,所以它一定是当前版本(9.0.3)的bug。在这种情况下,我建议降级到以前的版本(8.9.7):

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

票数 0
EN

Stack Overflow用户

发布于 2017-03-15 17:03:09

你不应该忘记一个网页可能包含多个框架,所以先在这个页面上试试下面的脚本:

代码语言:javascript
运行
复制
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;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42794036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档