我刚加入这里,如果我看起来有点慢,我还在学习imacros和java,所以道歉!我目前在imacros中有这个代码来检查元素是否有某个值,然后在java中做变通办法:
TAG POS=1 TYPE=P ATTR=TXT:* EXTRACT=TXT
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; if(s.match(\"error\")){url=\"imacros://run/?m=#Current.js\";} else url=\"imacros://run/?m=#Current2.iim\"; url;")
URL GOTO={{!VAR2}}
我知道它没有经过精心优化但却有效。但这是新问题。我需要在另一个不存在的元素上再做一次。那我该怎么办呢?这是相关的imacros线......
TAG POS=1 TYPE=SPAN ATTR=TXT:Click
所以是的,我需要提取它并像第一个例子那样进行比较,但就像我说的那样,它只有大约20-30%的时间。因此需要检查它是否存在,如果确实存在,则运行if else,如果不存在则继续正常继续。
先谢谢你们!
如果在第一个例子中有一种更有效的处理方式,那么这也会很棒,因为我知道它的臃肿,并使FF占用更多内存
是的,我已经搜索并看到了这个:
Check if html element exists with iMacros and javascript
和此:
Check if element exists in jQuery
但我仍然感到困惑和不知所措,因为我对js很新......
答案 0 :(得分:0)
首先,您应该阅读有关JavaScript Scripting Interface in 'iMacros for Firefox'的维基信息。
然后在默认的“Demo-Firefox”文件夹中查看js-scripts。
为了更好地理解这个原则,以下是您的第一个代码的样子:
iimPlayCode("TAG POS=1 TYPE=P ATTR=TXT:* EXTRACT=TXT");
var s = iimGetExtract();
if (s.match("error")) {
// not good idea to run 'js' from 'js' scripts
iimPlayCode("URL GOTO=imacros://run/?m=#Current.js");
} else {
// it's alright here
iimPlay("#Current2.iim");
}