2017-05-01 1 views
0

J'essaie de définir un délai aléatoire en fonction de l'heure actuelle avec iMacros pour Chrome.Evals multiples - Imacros pour Chrome

Actuellement mon code ressemble à ceci:

SET delay EVAL("if (\"!NOW:hh\" == '11') '2<SP>+<SP>9'; else \"3<SP>+<SP>8\";") 
SET delay EVAL("if (\"!NOW:hh\" == '12') '1<SP>+<SP>10'; else \"3<SP>+<SP>8\";") 
SET delay EVAL("if (\"!NOW:hh\" == '13') '0<SP>+<SP>11'; else \"3<SP>+<SP>8\";") 

SET hour EVAL("var randomNumber=Math.floor(Math.random()*{{delay}}); randomNumber;") 

Ce ne fonctionne pas comme il court que le premier eval. Est-il possible de combiner cela en une seule ligne?

TL; DR:

if NOW:hh = '11' then '9 + 2' 
if NOW:hh = '12' then '10 + 1' 
if NOW:hh = '13' then '11 + 0' 
else '8 + 3' 

Merci à l'avance.

Répondre

0

N'oubliez pas d'utiliser {{}}.

Vous pouvez « d'autre si » ou « switch » des instructions conditionnelles: JavaScript If...Else Statements

SET delay EVAL("if (\"{{!NOW:hh}}\" == '11') '2<SP>+<SP>9'; else if (\"{{!NOW:hh}}\" == '12') '10<SP>+<SP>1'; else if (\"{{!NOW:hh}}\" == '13') '11<SP>+<SP>0'; else \"3<SP>+<SP>8\";") 

PROMPT {{delay}} 

SET hour EVAL("var randomNumber=Math.floor(Math.random()*{{delay}}); randomNumber;") 

PROMPT {{hour}} 

Je suis en train de définir un délai aléatoire basé sur l'heure actuelle

Je ne savoir pourquoi ont besoin d'instructions aléatoires si compliquées. Cela semble suffisant:

SET delay("var randomNumber=Math.floor(Math.random()*{{!NOW:hh}} + 1); randomNumber;") 

PROMPT {{delay}} 
+0

Merci @Eng. Oui, c'est plus compliqué qu'il ne devrait vraiment l'être. Principalement parce que j'utilise iMacros pour Chrome et à cause de la façon dont le site est créé. Je cible des divs dans un agenda pour spécifier les heures à retarder: 'TAG SELECTOR =" HTML> CORPS> DIV: nième-de-type (4)> DIV: nième-de-type (5) > DIV> nth-of-type (2)> TABLE> TBODY> TR> TD> DIV: nième-de-type (6)> DIV: nième-de-type (4)> DIV: nième-de- type (6)> DIV: nième-de-type ({{hour}}) "' Où 'DIV: nième-de-type (8) = 6: 00' Je travaille dans un fuseau horaire est de 5 heures d'avance, donc si l'heure locale est 11h00 (6h00), je ne voudrais pas que le retard soit fixé à 6h00. – Chamezz