1

appjs アプリケーションが正常に動作しています。基本的に、イベントでロードされたページ内から既存の JavaScript 関数を呼び出そうとしています。または、イベントのページ要素にアクセスします。Honeywell Barcode Scanner で node-serial ライブラリを使用しています。シリアルポートに問題なくアクセスできます。スキャンデータは次の方法で問題なく取得できます。

serialPort.on('data', function(data) { ... });

私ができるようにしたいのは、上記のように、ページでjavascript関数を呼び出すことです。

window.document.body.scan(data);

または、少なくともデータにアクセスして、ノードで http リクエストを呼び出したり作成したりできます。これもうまくいきます。これらを実行すると

window.on('ready', function(){ ... });

ページ上の要素に問題なくアクセスできます。すなわち

var $ = window.$;
$("#message").html('Something...');

しかし、serialPort.on データ関数でまったく同じコードを実行しようとすると、次のようなエラーが発生します。

        $('#message').html('Please wait...');
        ^
TypeError: object is not a function...

または、「html」が関数ではない $("#message").html でさえ。しかし、window.on ready 関数で実行すると動作します。appjs のドキュメントがほとんどないため、かなり迷っています。ありがとうございました!

4

2 に答える 2

0

JS ファイルの先頭からアクセスしてみましたか? $ インスタンスではなく Window が未定義のようです。

最近のプロジェクトでこれを行い、作成したノード モジュールで jQuery を使用して DOM ノードにアクセスしました。これをapp.jsファイルに追加します。Nodeグローバル変数を使用しています。

// Under your window definition
global.$ = window.$;

これにより、すべてのノード ファイル/モジュールでウィンドウ プレフィックスなしで $ を使用できるようになります。

于 2013-03-19T14:33:36.980 に答える