HTML <form>вход заблокирован после загрузки WASM - PullRequest
0 голосов
/ 02 апреля 2020

Пожалуйста, кто-нибудь может помочь мне решить эту проблему? У меня есть canvas, вставленный в html и нарисованный usng WebAssembly в C, однако кажется, что он блокирует поля ввода формы HTML - я ничего не могу набрать после загрузки и запуска модуля wasm ...

Я использую emscripten_set_main_loop_arg () в C вместо requestAnimationFrame () в JS:

const int simulate_infinite_loop = 1; // call the function repeatedly
const int fps = -1; // call the function as fast as the browser wants to render (typically 60fps)
emscripten_set_main_loop_arg(render, &cbp, fps, simulate_infinite_loop);

Позже я вставляю его в HTML:

<script type='text/javascript'>
    var Module = {};
    fetch('app/aghdr.wasm')
    .then(response =>
        response.arrayBuffer()
    ).then(buffer => {
        Module.canvas = document.getElementById("canvas");
        Module.wasmBinary = buffer;
        var script = document.createElement('script');
        script.src = "app/aghdr.js";
        script.onload = function() {
        console.log("Emscripten boilerplate loaded.")
        }
        document.body.appendChild(script);
    });
</script>

Кто-нибудь знает, горячо ли, чтобы обеспечить нормальную HTML форму обработки сообщений во время работы модуля WASM?

См .: http://inters.cloud/test3/

1 Ответ

1 голос
/ 03 апреля 2020

Возможно, это вызвано emscripten_set_keypress_callback(). Когда обратный вызов аргумента возвращает ненулевое значение, event.preventDefault() блокирует событие нажатия клавиши.

...