从 EMSCRIPTEN 访问 DOM
Posted
技术标签:
【中文标题】从 EMSCRIPTEN 访问 DOM【英文标题】:Accessing DOM from EMSCRIPTEN 【发布时间】:2017-11-20 15:08:38 【问题描述】:有没有办法从 EMSCRIPTEN C++ 应用程序访问 DOM?
例如,我想读取/设置 html textarea 的值并接收 html 按钮 onclick 事件。
有人可以提供一个 C++ sn-p 吗?
谢谢。
【问题讨论】:
【参考方案1】:我会尝试用我目前找到的唯一方法来回答我自己的问题:
这是 html sn-p:
<!-- html file -->
...
<input type="text" id="my_textbox" value="...">
...
<input type="submit" value="Submit" onclick="_onBtnPressed()">
...
这是 C++ 代码:
// C++ file
// callback for button event
extern "C"
void onBtnPressed() std::cout << "Btn pressed\n";
...
// change text of a text box:
emscripten_run_script("document.getElementById('my_textbox').value = 'Hello, emscripten world!'");
使用标志编译:
emcc -s EXPORTED_FUNCTIONS="['_onBtnPressed']" ...
此方法有效。但是,我希望有一些显式的 emscripten API 来直接操作 DOM。
【讨论】:
以上是关于从 EMSCRIPTEN 访问 DOM的主要内容,如果未能解决你的问题,请参考以下文章
从 Asm.js/emscripten 启用 WebGL 扩展?
使用 emscripten 将字符串从 C++ 传递给 JS
是否可以使用 Emscripten 从 JavaScript 调用 C++ 函数?