node.js - 使用 Node js + App JS + Node-Serial 访问 dom

标签 node.js appjs node-serialport

我有一个运行良好的 appjs 应用程序。我基本上试图从事件的加载页面中调用现有的 javascript 函数。或者访问事件的页面元素。我正在将 Node 串行库与霍尼韦尔条形码扫描仪一起使用。我可以很好地访问串行端口,我可以很好地获取扫描数据:

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

如上所述,我想要做的是在页面上调用 javascript 函数,即

window.document.body.scan(data);

或者至少访问数据并能够使用 Node 调用/发出http请求,我也能做得很好。当我在

中运行这些东西时
window.on('ready', function(){ ... });

我能够正常访问页面上的元素。即

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

但是如果我尝试在serialPort.on数据函数中运行完全相同的代码,我会得到类似的错误

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

甚至 $("#message").html 表明“html”不是一个函数。但如果我在 window.on 就绪函数上运行它,它就可以工作。我很迷茫,因为 appjs 的文档很少。谢谢!

最佳答案

serialPort.on('data',function(){ ... });代码正在 AppJS 中运行,因此要访问需要使用 Window 变量的窗口,请尝试将代码更改为:

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

为了能够调用自定义函数(称为 scan),请在 window.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>

关于node.js - 使用 Node js + App JS + Node-Serial 访问 dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15031221/

相关文章:

javascript - 如何使用参数运行 npm {bin : script. js}

node.js - 错误 : Command failed: C:\Program Files (x86)\Python38-32\python. exe

sqlite - NodeJS + AppJS + Sqlite3

node.js - 如何使用 Express-JWT 处理错误

node.js - NodeJS 中的 HTTPS 请求

node.js - 在 Mountain Lion 上安装 32 位 Node

node.js - nodejs-serialport => 关闭后重新建立与端口的连接

node.js - 在node.js中显示网页上变量的内容

node.js - 使用 Node 和串行端口 Node 包在同一端口上发送/接收数据