Hal: Links in Array zeitverzögert anklicken

Beitrag lesen

setTimeout("allLinksEmail[" + i + "].click()", 5000 * i);

Das ist aber nicht schön.

Ich weiß. Hat aber erst funktioniert und sollte auch funktionieren. Jetzt tut es das nicht mehr. Keine Ahnung, warum.

Zwar kann setTimeout() auch mit einem String umgehen, eigentlich sollte man ihm aber eine >Funktion bzw. eine Funktionsreferenz geben:

setTimeout(function(){ document.links[i].click(); }, 5000 * i);

Das Array wird nochmal gefiltert, sprich nicht jeder Link wird angeklickt, sondern nur welche mit einem bestimmten title Attribut. Den Teil des Codes habe ich aber nicht ausgeführt, der funktioniert auch. allLinks enthält also nur noch die betreffenden Links.

Das hier:

setTimeout(function(){ allLinks[i].click(); }, 5000 * i);

habe ich schon probiert. Gibt mir die Meldung 'Cannot convert allLinks[i]' to Object.'

Aber irgendwann hörte dieser Code unerklärlicherweise auf zu funktionieren (allLinksEmail ist not defined).

Na klar, nämlich sobald der Browser den ersten simulierten Klick bearbeitet und als Reaktion ein neues Dokument lädt. Was erwartest du sonst?

Nein, es wird kein neues Dokument geladen. href ist gar nicht definiert. Es soll das onclick-Ereignis des betreffenden Links ausgelöst und die entsprechende Routine gestartet werden. Das Dokument bleibt dabei erhalten.

Das ganze ist eine Opera Extension, allerdings für den privaten Gebrauch lediglich. Nichts zum Veröffentlichen.

Daher kann ich auch die onclick-Routine nicht per Hand ausführen, da das Skript auf fremden Seiten läuft.

Noch viel interessanter finde ich aber die Frage: Was willst du damit eigentlich erreichen?

S.o.

  • Hal.