Providing stdin zu einem HTML-Programm emscripten?
Ich habe ein C-Programm, das ein Argument (ein Zeichen-Array / eine Zeichenfolge) über die Befehlszeile akzeptiert und auch von stdin liest. Ich habe es mit emscripten in JavaScript kompiliert. Dies war erfolgreich und ich kann es wie das normale C-Programm mit node.js ausführen:
emcc -O2 translate.c
node translate.js "foo" < bar.txt
Wie Sie sehen können, gebe ich den String "foo" als Argument und den Inhalt von bar.txt als stdin an. Jetzt möchte ich, dass dies eine in sich geschlossene HTML-Datei ist.
Durch Ändern der Ausgabe in HTML:
emcc -O2 translate.c -o trans.html
Ich stelle das Argument vonaddingarguments: ['foo'],
zu den Definitionen invar Module
. Dies funktioniert wie erwartet, das Programm erhält das Argument korrekt.
Now, wie kann ich die stdin-Eingabe für dieses Programm bereitstellen? Ich muss das nicht dynamisch machen. Es wäre in Ordnung, einfach irgendwo im HTML-Code eine Zeichenfolge mit dem erforderlichen Standardinhalt zu deklarieren.
Bearbeite Nur eine Lösung gefunden, die für mich funktioniert. In der JS-Datei für das generierte HTML gibt es einen Standardeingabehandler, derprompt()
s der Benutzer, wenn keine andere Eingabemethode definiert ist. Bearbeiten Sie einfach die Variableresult
oder eigene Funktion aufrufen:
} else if (typeof window != 'undefined' &&
typeof window.prompt == 'function') {
// Browser.
// REPLACE THIS CODE:
result = window.prompt('Input: '); // returns null on cancel
if (result !== null) {
result += '\n';
}