使用iMacros和javascript检查HTML元素是否存在

3
我希望检查一个HTML元素是否存在,并在存在时跳转到一个URL。如果不存在,我想去别的URL。
因为iMacros没有语句,所以我使用了带有iMacros EVAL的javascript。这是处理javascript执行的代码行:
SET !VAR3 EVAL("var element = window.content.document.getElementById(\"some_element\");
if (typeof(element) != 'undefined' && element != null) { 
var redirect = 'http://192.168.178.22/sc/report.php'; 
} else { 
var redirect = 'http://192.168.178.22/sc/index.php?action=connect'; 
} 
redirect;
")

然后,我将使用重定向:

*这是一行文字,但为了在此处格式化它。

URL GOTO={{!VAR3}}

问题在于这两种情况下,!VAR3都被设置为“undefined”。我在Firefox上尝试了几乎相同的JS代码,看起来它是工作的。使用Windows 8与最新版本的Firefox和iMacros。谢谢。
1个回答

4
var macro;

macro ="CODE:";
macro +="TAG POS=1 TYPE=DIV ATTR=CLASS:some_class CONTENT=EVENT:MOUSEOVER ";

var ret=null;

ret=iimPlay(macro);

if(ret>0)
{
//do something
}
else
{
//do something else
}

这是您所需脚本的基本模型。您只需要插入适当的iMacros代码即可。

1
谢谢您的回复。但是,对我来说还有点不清楚。我应该使用脚本接口吗?请具体说明一下。再次感谢您的帮助。 - user2312194
脚本接口除此之外没有其他意义。您可以使用.js文件而不是.iim文件。在我的帖子中,您可以看到如何制作.js文件的示例。 - edinvnode
上面的回复几乎无法理解。虽然有点晚了,但这里是澄清的答案:不,您不需要脚本接口。您所指的脚本接口可能是标准/专业版功能。您可以像在免费版本中运行.iim文件一样运行.js文件。只需将.js文件保存在iMacros指向的目录中(可通过设置菜单识别)。注意:我无法让.js文件出现在Chrome插件中。Firefox插件似乎更稳定/功能更强大。 - Tyler Hoppe
@user2312194,在宏中添加 +="SET !ERRORIGNORE YES\n"; - Fortran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接