从 EMSCRIPTEN 访问 DOM

Dan*_*lli 5 html c++ emscripten

有没有办法从 EMSCRIPTEN C++ 应用程序访问 DOM?

例如,我想读取/设置 html textarea 的值并接收 html 按钮 onclick 事件。

有人可以提供 C++ 片段吗?

谢谢。

Dan*_*lli 3

我将尝试用我目前找到的唯一方法来回答我自己的问题:

这是 html 片段:

<!-- html file -->
...
<input type="text" id="my_textbox" value="...">
...
<input type="submit" value="Submit" onclick="_onBtnPressed()">
...
Run Code Online (Sandbox Code Playgroud)

这是 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!'");
Run Code Online (Sandbox Code Playgroud)

使用标志编译:

emcc -s EXPORTED_FUNCTIONS="['_onBtnPressed']" ...
Run Code Online (Sandbox Code Playgroud)

这个方法有效。然而,我希望有一些显式的 emscripten API 来直接操作 DOM。