2017-06-19 2 views
0

Ich erstelle ein Imacros-Skript, um eine zufällige Option innerhalb eines HTML-Select-Elements auszuwählen.Imacros erhalten Anzahl der Optionen in der Dropdown-Liste

So:

mcr +="TAG POS=1 TYPE=SELECT ... CONTENT=#"+opcionAleatoria(12)+ '\n'; 

Wo opcionAleatoria() ist eine Funktion, um eine Zufallszahl zu greifen:

Und Gesamt ist die Gesamtmenge an Optionen innerhalb dieses wählen.

function opcionAleatoria(total) { 
return Math.floor(Math.random() * total) + 1; 
} 

Ich möchte jetzt in der Lage sein, die Gesamt (amout von Optionen in ausgewählten) als Parameter an die Funktion übergeben.

Warum?

Zwei Gründe:

  • zu zählen Also brauche ich nicht zu.
  • So funktioniert es in Kombinationsfeldern.

Ich versuchte document.form.select_id.options.length vorbei, aber es wird seitDokument in imacros nicht funktionieren ist nicht definiert.

Haben Sie irgendwelche Ideen, wie ich mich dem Fall nähern kann?

Antwort

1

Versuchen Sie, Ihren Ausdruck zu ändern, etwa so:

var total = window.document.forms[0].select_id.options.length; 


Wenn die obige Art und Weise vorgeschlagen, hier funktioniert nicht mehr zuverlässig ein:

iimPlay("CODE:TAG POS=1 TYPE=SELECT ... EXTRACT=TXTALL"); 
var total = iimGetExtract().split("[OPTION]").length; 

(Ich nehme an, Sie ' iMacros für Firefox 'und seine Scripting-Schnittstelle.)

+0

Sie vermutlich richtig. Ihre Option sagt: "Der Zugriff auf das Inhaltsfenster wird im Multiprozess-Firefox nicht unterstützt". Option 2 ist ein schöner Ansatz. Vielen Dank. –

Verwandte Themen