2013-02-22 5 views
1

appjs 응용 프로그램이 잘 실행되고 있습니다. 기본적으로 이벤트에서로드 된 페이지 내에서 기존 자바 스크립트 함수를 호출하려고합니다. 또는 이벤트의 pages 요소에 액세스하십시오. 하니웰 바코드 스캐너와 함께 노드 직렬 라이브러리를 사용하고 있습니다. 난과 잘 스캔 데이터를 얻을 수 있습니다, 직렬 포트 벌금에 액세스 할 수 있습니다nodejs + appjs + node-serial을 사용하여 dom에 액세스

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

내가 위에서 언급 한 바와 같이, 페이지, 즉에 자바 스크립트 함수를 호출하면된다 할 수 있도록하려면

window.document.body.scan(data); 

적어도 데이터에 액세스하고 노드와 함께 HTTP 요청을 호출하거나 만들 수 있어야합니다.이 요청은 잘 수행 할 수 있습니다. 이러한 작업을 수행 할 때

페이지의 요소에 액세스 할 수 있습니다. 즉

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

하지만 난 심지어 $

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

또는 같은 오류를 얻을 serialPort.on 데이터 함수에서 동일한 코드를 실행하려고하면 ("# 메시지"). html로 "그 HTML "기능이 아닙니다. 하지만 창문에서 실행하면 준비된 기능으로 작동합니다. appjs에 대한 문서가 거의 없기 때문에 저는 꽤 잃어 버렸습니다. 고맙습니다!

+0

이 작업을 수행하는 방법을 알아 냈습니까? – dottedquad

답변

1

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

window.$('#message').html('Please wait...'); 

사용자 정의 기능 (전화 스캔)를 호출 할 수 있으려면 않는 창에 다음 코드는 그래서, 당신의 코드를 변경하려고하면 창 변수를 사용하는 데 필요한 창에 액세스 AppJS에서 실행되고있다. on ('ready', function() {...});

window.scan = function() { 
    //code to connect to the scanner here. 
    console.log("scan run"); 
} 

그리고 어딘가에 당신이 그 함수를 호출 할 수있는 버튼과 같은 내부의 HTML 페이지의 :

<body> 
<button onclick="window.scan();">Scan Now!</button> 
</body> 
+0

안녕하세요. 회신 해 주셔서 감사합니다. 내가 데이터 액세스에 serialPort의 $.에 액세스하려고하면 위와 같은 오류가 발생합니다. TypeError : 객체 '$'의 객체 # 이 함수가 아닙니다. – Michael

0

당신이 당신의 JS 파일의 상단에서 액세스 시도? Window가 $ instance보다는 undefined 인 것 같습니다.

내가 작성한 노드 모듈에서 jQuery를 사용하여 DOM 노드에 액세스하는 최근 프로젝트에서 이것을 수행했습니다. 당신이 노드 파일/모든 모듈의 창 접두사없이 $를 사용할 수 있도록 할 것 Node global variable

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

을 사용하고, 당신의 app.js에 파일이 추가.

관련 문제