1

Posiflex MSR MR2000 シリーズを持っています。Posiflex OPOS Control をインストールしました。IE 8 の html ページで MSR を管理する必要があります。CLSID に関する JS コード/オブジェクトで ocx コントロール OPOS.MSR を使用します。私はそのようなコードを持っています (ActiveX バージョン)

    function msrop(){

        try { 
          if ( r = msro.Open('MR1') ) { log ( ER100 + ' ' + 'MSROP' + ' ' + r ); return }
          log(r);
        } 
        catch ( e ) { 
          log ( 'MSROP' , e ) ; return ;
        }

    }

    function msrcl(){
        try { 
          if ( r = msro.Claim(-1) ) { log ( ER100 + ' ' +  'MSRCL' + ' ' + r ); return }
          msro.DeviceEnabled = true ;
          msro.DataEventEnabled = true ;
          log(r);
        } 
        catch ( e ) { 
          log ( 'MSRCL' , e ) ; return ;
        }
    }

    function ol(){

        try { msro = new ActiveXObject ( 'OPOS.MSR' ) ; } catch ( e ) { alert(e) }

        bind ( msro ) ;
    }

    function bind( o ){
        function o::DataEvent(){
            log('<br/>' + '->Tracks read ' + 'T1: ' + o.Track1Data + ' T2: ' + o.Track2Data + 'T3: ' + o.Track3Data + 'T4: ' + o.Track4Data );
            log('<br/>' + '->DataEventEnabled ' + ( msro.DataEventEnabled = true ))
            var d = document.getElementById('track');
            d.innerHTML = o.AccountNumber;
        }
    }
...
    <button onclick="msrop()">Open</button>
    <button onclick="msrcl()">Claim</button>

このコードは、HTA アプリケーション内でうまく機能します。Claim メソッドは OPOS_SUCCESS (0) を返します。しかし、Internet Explorer 8 で HTM として実行しようとすると、Claim メソッドで例外が発生し、オブジェクトの ResultCode プロパティが 104 (OposENoservice) になります。Recall は ResultCode 102 (OposEClaimed) を返します。

Internet Explorer で正しく動作する Claim メソッドを取得する必要があります。IE に基づく HTA では、同じコードが異なる動作をするのはなぜですか??

4

0 に答える 0