让c ++程序调用html函数/事件监听器

时间:2014-07-14 18:50:50

标签: html c++ polymer

我创建了一个简单的HTML页面(使用Google Polymer中的组件),其中有一个按钮,单击该按钮会告诉浏览器显示一条消息。

此按钮的代码为:

<paper-button raisedButton onclick="document.querySelector('#notification').show()" label="Click Me!!"></paper-button>

这样可以正常工作,但如果在c ++程序中发生某些事情,我希望能够在我的通知上触发.show()。

这可能吗?

通过这个,我的意思是有一种方法可以在c ++程序中对html组件调用.show()吗?

2 个答案:

答案 0 :(得分:1)

这更多是关于c ++到javascript的通信而不是Polymer。但我遇到了多个websocket聚合物组件,包括这个:

https://github.com/elierotenberg/x-websocket

因此,您可以在C ++代码和html页面之间建立套接字通道:

并将一个事件处理程序附加到您的websocket,从而触发&#39; show&#39;另一个组成部分的方法:

var socket = document.querySelector('x-websocket');
var toShow = document.querySelector('#notification')
socket.addEventListner('message', function(data) {

   /* you can get access to the message from c++ code through data object */ 

   toShow.show();

});

有关c ++ here

中的websockets的更多信息

答案 1 :(得分:0)

肯定是的。 C ++ 允许您构建可靠,快速且可靠的程序,这是您通常希望从后端脚本中获得的。

我能想到的最简单的方法是运行 C ++ 程序并通过net-cat网络管道(或其他设计用于管道流的程序)将其输入/输出隧道化,检查这个以获取更多示例管道一个程序)

然后你可以简单地缓冲你的输入,通过TCP管道将它发送到 C ++ 程序(通过Ajax或任何你想要的)。处理输入然后使用Ajax或其他方法将输出缓冲回html页面。

./$your_prog.cpp | nc -l -p -q 5 $PORT

nc -l -p $port_number -e $program_name

如果您不是net-cat的粉丝,可以使用netpipe - manual here。您也可以使用tcpserver已知来处理此类管道:here是更多工具和示例。

您还可以在 C ++ 程序中实施网络功能,以便它可以处理来自HTML页面的网络请求。您可以使用mongoose等HTTP服务器库来简化生活。