iMacros: Mit Javascript mit EVAL ersetzen von text in einer variable
Ich bin mit iMacros für Firefox download meine Wells-Fargo-PDF-Kontoauszüge automatisch, und geben Sie den Dateien die Namen der Verknüpfung, wie "Anweisung 04/22/12 (597K)"
Jedoch kann ich keine Schrägstriche in den Namen der Datei (Windows-Einschränkung...). So bin ich versucht zu ersetzen die Schrägstriche durch eine dash.
Hier ist mein iMacro unten. Ich bekomme einen Fehler-code in der folgenden Zeile:
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.replace(/\//g, "-");")
Mein javascript oder mein Regex funktioniert nicht, und ich weiß nicht, warum. Ich bin nicht stark in beiden Sprachen - ich habe versucht, kopieren von anderen Beispielen, so gut ich konnte, aber ohne Erfolg. Wenn Sie helfen können, das wäre toll. Danke.
VERSION BUILD=5010424 RECORDER=CR
' SET !ERRORIGNORE YES
TAB OPEN
TAB T=2
URL GOTO=https://online.wellsfargo.com/login
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:Signon ATTR=ID:username CONTENT=XXX
SET !ENCRYPTION TMPKEY
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ID:Signon ATTR=ID:password CONTENT=XXX
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:Signon ATTR=NAME:continue&&VALUE:Sign<SP>On
TAG POS=1 TYPE=A ATTR=TXT:View<SP>online<SP>statements
SET !EXTRACT_TEST_POPUP NO
TAG POS=1 TYPE=A ATTR=TXT:Statement<SP>* EXTRACT=TXT
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.replace(/\//g, "-");") <---- THIS IS THE PROBLEMATIC LINE!!!!!!!!!!!!!!
ONDOWNLOAD FOLDER=D:\Wells<SP>Fargo\CREDIT<SP>CARD\ FILE={{!VAR1}}.pdf
TAG POS=1 TYPE=A ATTR=TXT:Statement<SP>* CONTENT=EVENT:SAVETARGETAS
TAB CLOSE
Als extra, wenn Sie wissen, wie zu entfernen "(597K)" mit Regex in javascript, das wäre das Sahnehäubchen auf dem Kuchen. (natürlich der Wert dieser Zeichenfolge wird anders sein für jede Datei, so dass es dynamisch sein)
- Es scheint, Sie haben nicht entgangen das doppelte Anführungszeichen (um das dash)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du verpasst escaping der Anführungszeichen in
"-"
, so endete das iMacros-string statt des ab ein JavaScript-string.Haben Sie auch möglicherweise haben Sie ein problem in der
/\//
regexp, weil ich vermute, iMacros Essen die\/
und schalten Sie ihn in/
verlassen JS mit dem invalid literal///
. Es müsste/\\//
.Auch, wenn die
!EXTRACT
variable enthält, Anführungszeichen, backslashes oder Zeilenumbrüche, es wird injizieren diese in den JavaScript-code direkt, bricht die JS-string-literal und potenziell die Ausführung von beliebigem Skript.Diese sind Beispiele für die vielen Probleme mit verschachtelten Flucht zusammenhängen. Sie können vermeiden, die beiden ersten durch die Verwendung alternativer, nicht-widersprüchliche Zitate und loszuwerden der regex-literal durch die Verwendung der simple string-ersetzen
split
/join
idiom statt:aber das lässt immer noch die JS-injection-problem. Von einem schnellen Blick in die Bedienungsanleitung, es scheint, iMacros keine brauchbare string-Verarbeitung-Funktionalität, so dass Sie nicht in der Lage sein, um eine manuelle JS-string-literal-ersetzen, oder in der Tat einfach nur die
/
-zu-
Ersatz innerhalb von iMacros. Das wäre die vernünftige Sache zu tun; erstellen von ausführbaren code aus strings ist fast immer eine katastrophal falsche Sache entschieden zu vermeiden.[rant beiseite: Von diesem Blick in die Bedienungsanleitung, die Existenz von iMacros macht mich echt unglücklich. Es bietet Ihnen eine völlig willkürliche und doch unfähig, homebrew-scripting-Sprache, die statt nur über die bereits verfügbaren JavaScript -, dann machen Sie gehen zu JS sowieso nichts zu tun über die lächerlich trivial... und nicht indem Sie Werkzeuge zur übertragung von Werten zwischen den beiden sicher. Was ist auch der Sinn dieser software? Ich fühlte mich noch nicht mit diesem frustriert mit dem Versuch, das zu umgehen verquer design-Sprache, die seit den dunklen Tagen der 4GLs. Das ist einfach nur schrecklich. Menschen nutzen diese?]
Ihre Aufgabe, wie die meisten nicht-trivialen kratzen Probleme können gelöst werden, viel einfacher mit javascript zu organisieren imacros code
Werfen Sie einen Blick auf dieses Beispiel. Ich glaube nicht, verwenden Wells Fargo, so kann ich nicht testen, den eigentlichen Download, sondern die grundlegende Struktur ist es