2017-01-13 12 views
0

私はimacrosスクリプトのエラーをログに記録しようとしています。第1章の見出しのあるページに到達した場合は、前のコードが機能していないことを意味します。SET形式が間違っています。どちらが間違っていたかわからない

TAG POS=1 TYPE=H1 ATTR=TXT:Chapter<SP>One EXTRACT=TXT 


SET !VAR2 EVAL("var text=\"{{!EXTRACT}}\"; if(text==\"Chapter One\") {iimPlay("code: ADD !extract {{!NOW:yyyymm}}\nADD !extract {{!COL2}}\nADD !extract Cannot<SP>Access<SP>Page\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=logs.txt");iimPlay("0-DeleteAll.iim");};text;") 

この行を指すエラー。 SETコマンドの

SET !VAR2 EVAL("var text=\"{{!EXTRACT}}\"; if(text==\"Chapter One\") {iimPlay("code: ADD !extract {{!NOW:yyyymm}}\nADD !extract {{!COL2}}\nADD !extract Cannot<SP>Access<SP>Page\nSAVEAS TYPE=EXTRACT FOLDER=* FILE=logs.txt");iimPlay("0-DeleteAll.iim");};text;") 

間違ってフォーマット、ライン43(エラーコード:-910)

1わかりません。 明白な部分でなければなりません。

答えて

0

エラーは、エスケープ文字列内のエスケープされていない二重引用符文字、特にSETコマンドを含む行の文字位置79の結果です。 EVALのメインパラメータは文字列値なので、埋め込み引用符は\を使用してエスケープする必要があります。 \ "。

さらに重要なことに、埋め込み引用符を修正しても、iimPlayやその他のiMacrosスクリプトインターフェイスメソッドをEVAL内で呼び出すことができないため、このコードは機能しません.EVALコマンドで使用されるJavascriptエンジンが実行されますブラウザで使用されるメインのJavascriptエンジンとは異なるコンテキストで、iimPlayを呼び出すと「iimPlayが定義されていません」(エラーコード:-1001)という結果になります。

関連する問題