0

バックグラウンド タスクを介していくつかの JS コードを実行しようとしています。

ペイパルと同様に機能するゲートウェイを使用しています。つまり、支払いの詳細が取得されると、サーバーのリスナーに応答が返されます(これは即時または数分後に発生する可能性があります)

応答がリスナー (listener.cfm) によって受信されたら、cfhttp im を使用して、トリガー コードを含むファイル (runPixCode.cfm) を呼び出します。runPixCode.cfm はブラウザによってレンダリングされないため、JS は実行されません。

また、これが機能したかどうかを証明するために、ログを txt ファイルに書き込む別のファイル (provethisis called.cfm) を呼び出すように JS を取得しています。

cfhttp 呼び出しの直後に次の行を追加すると、ログ ファイルにエントリが表示されます。これにより、ブラウザによってレンダリングされた JS を提供することに問題がないことが保証されます。

<cfoutput>#cfhttp.FileContent#</cfoutput><cfabort>

ただし、バックグラウンド タスクでは機能しません。これに対処する方法が他にわかりません。提案をいただければ幸いです。

リスナー.cfm

--Does a bunch of logic--
<cfif paymentsuccessful>
    <CFHTTP URL="www.mysite.com/runPixCode.cfm" METHOD="post" timeout="12" resolveurl="true">
      <CFHTTPPARAM NAME="TrackingId" VALUE="#trackingId#" TYPE="FormField">
    </CFHTTP>
</cfif>

runPixCode.cfm

<SCRIPT language="JavaScript">
    var axel = Math.random()+""; 
    var a = axel * 1000; 
    document.write('<IFRAME SRC="http://www.mysite.com/provethisiscalled.cfm?codearea=landing&num='+ a + '?" WIDTH=1 HEIGHT=1 FRAMEBORDER=0></IFRAME>'); 
</SCRIPT>
<NOSCRIPT><IFRAME SRC="http://www.mysite.com/provethisiscalled.cfm?codearea=landing&num=1" WIDTH=1 HEIGHT=1 FRAMEBORDER=0></IFRAME> </NOSCRIPT>

これが呼び出されたことを証明する.cfm

<cfloop collection=#ARGUMENTS.triggerParams# item="key"> 
        <cfset docLogging = docLogging & chr(13) & "#key# = " & ARGUMENTS.triggerParams[key]> 
</cfloop>
<cffile action="append" file="c:\serverlocation\someDir\triggerlog.txt" output="#docLogging#" addnewline="YES" >
4

1 に答える 1

0

これらのプロセスはすべて、ブラウザではなくアプリケーションによって呼び出されるため、iframe の記述も JavaScript も機能しません。

それで、あなたは創造的にならなければなりません。まず、あなたは本当に何をしようとしていますか?

ファイルが呼び出されたか実行されたかどうかを判断することが目的の場合は<cflog>、データベースへのエントリを使用または書き込みます。

listener.cfm から runPixCode.cfm に HTTP 呼び出しを渡そうとしている場合<cfhttp>は、iframe の代わりに使用します。

あなたの目的が実際にこの自動化されたプロセスの一部として JavaScript を実行することである場合 (そうではありませんが、これはすばらしいことです)、Rhino を介して CF/Java サーバーで JavaScript を実行できます。これは非常に単純ではありませんが、コードを取得できます。グーグルによるスニペット。Rhino は ColdFusion に として含まれてjs.jarいるため、動作させるために特別なファイルをダウンロードする必要はありません。

于 2012-11-09T21:08:06.977 に答える