2017-03-14 1 views
0

Ich habe schon so viele Beiträge gesucht, und immer noch nicht funktionieren.Imacros - überprüfen Sie, ob Text (Javascript)

Was ich brauche ist, einfach zu überprüfen, ob ein bestimmtes Wort auf der Website existiert. (Imacros für Firefox) mit Javascript.

Ich habe einige Antworten gesehen, die sagen, "Dokument" zu verwenden. Das funktioniert nicht. Ich habe einige sagen, verwenden Sie "window.document". Das gibt einen Fehler, der besagt, dass es in Multiprocess Firefox nicht unterstützt wird. Und einige sagten, dass sie ähnliche Sachen machen, die auch nicht funktionieren.

Ich habe das auch gefunden;

var macro; 

macro ="CODE:"; 
macro +="SET !ERRORIGNORE YES"+"\n"; 
macro +="TAG POS=1 TYPE=HTML ATTR=TXT:* EXTRACT=TXT"+"\n"; 

iimPlay(macro) 

var text=iimGetLastExtract(); 

if(text.search("Hello World")!=-1) 
{ 
    alert("Found the text"); 
} 

^Wo das Skript gerade läuft und ... endet. Es wird kein Fehler ausgegeben, es wird jedoch auch keine Warnung ausgegeben. Es endet einfach.

Also wie könnte ich das tun?

+0

Sind 'iimPlay' und' iimGetLastExtract' irgendwo definiert? – JorgeObregon

+0

Es ist in iMacros, wenn Sie iimPlay ("example.iim") verwenden; in der Javascript-Datei, es wird laufen die .iim-Datei befindet sich in Documents/iMacros –

Antwort

0

Wenn Sie den SET! ERRORIGNORE YES-Befehl in Ihrem Makro nicht hatten, würden Sie sehen, dass iMacros eine 'Zuordnungsgröße Überlauf'-Ausnahme auslöst, höchstwahrscheinlich, weil die Menge an Text zu viel dafür ist Griff.

Aber ich habe gerade dein Skript mit einer früheren Version von iMacros für Firefox getestet und es hat dieses Problem nicht, also muss es ein Fehler mit der aktuellen Version (9.0.3) sein. In diesem Fall würde ich auf die vorherige Version Herabstufung empfehlen (8.9.7):

http://wiki.imacros.net/iMacros_for_Firefox#How_to_Downgrade

0

Sie sollten nicht vergessen, dass eher eine Web-Seite mehrere Bilder enthalten kann, so versuchen Sie das folgende Skript auf dieser Seite zuerst:

for (i = 0; ; i++) { 
    var ret = iimPlayCode("SET !TIMEOUT_STEP 1" + "\n" + "FRAME F=" + i + "\n" + "TAG POS=1 TYPE=BODY ATTR=* EXTRACT=TXT"); 
    if (ret != 1) { 
     // alert("Not found the text"); 
     break; 
    } 

    if (iimGetExtract().indexOf("Imacros - check if text exits (javascript)") > -1) { 
     alert("Found the text"); 
     break; 
    } 
} 
+0

immer noch scheint mich nicht auf irgendetwas in irgendeiner Weise zu warnen, läuft das Skript, und beendet und stoppt. Kannst du etwas erklären? Update: Ich habe das Skript mit 'iimDisplay() getestet;' anstelle von 'alert', und es wird immer die Nachricht angezeigt, wo der Code 'if (ret! = 1)' ist, unabhängig davon, ob 'Hello World' vorhanden ist oder nicht, und 'if (iimGetExtract(). search' wird nicht angezeigt. Nachricht: –

+0

@DenisDelinger Siehe die Erklärung in meiner Antwort Es ist sehr wahrscheinlich, dass das Makro den Fehlercode -1001 aufgrund des Fehlers 'Zuordnungsgröße Überlauf' zurückgibt Sie können den Rückgabewert anzeigen, indem Sie nach dem iimPlayCode alert (ret) aufrufen Sie werden es auch sehen, wenn Sie das Makro direkt im Browser ausführen und nicht aus einem .js-Skript. Ich bin mir ziemlich sicher, dass Sie ein Downgrade durchführen müssen, damit dies richtig funktioniert. – iMacrosGuru

+0

Ich habe meinen Code bearbeitet a Versuchen Sie es auf dieser Seite zu spielen. Funktioniert es für Sie? – Shugar

Verwandte Themen