aboutsummaryrefslogtreecommitdiff
path: root/browser-demo
diff options
context:
space:
mode:
Diffstat (limited to 'browser-demo')
-rw-r--r--browser-demo/demo.js45
1 files changed, 33 insertions, 12 deletions
diff --git a/browser-demo/demo.js b/browser-demo/demo.js
index 20dcda0..3126192 100644
--- a/browser-demo/demo.js
+++ b/browser-demo/demo.js
@@ -1,16 +1,37 @@
(function() {
- mammoth.fileInput(
- document.getElementById("document"),
- function(result) {
- document.getElementById("output").innerHTML = result.value;
-
- var messageHtml = result.messages.map(function(message) {
- return '<li class="' + message.type + '">' + escapeHtml(message.message) + "</li>";
- }).join("");
-
- document.getElementById("messages").innerHTML = "<ul>" + messageHtml + "</ul>";
- }
- );
+ document.getElementById("document")
+ .addEventListener("change", handleFileSelect, false);
+
+ function handleFileSelect(event) {
+ readFileInputEventAsArrayBuffer(event, function(arrayBuffer) {
+ mammoth.convertToHtml({arrayBuffer: arrayBuffer})
+ .then(displayResult)
+ .done();
+ });
+ }
+
+ function displayResult(result) {
+ document.getElementById("output").innerHTML = result.value;
+
+ var messageHtml = result.messages.map(function(message) {
+ return '<li class="' + message.type + '">' + escapeHtml(message.message) + "</li>";
+ }).join("");
+
+ document.getElementById("messages").innerHTML = "<ul>" + messageHtml + "</ul>";
+ }
+
+ function readFileInputEventAsArrayBuffer(event, callback) {
+ var file = event.target.files[0];
+
+ var reader = new FileReader();
+
+ reader.onload = function(loadEvent) {
+ var arrayBuffer = loadEvent.target.result;
+ callback(arrayBuffer);
+ };
+
+ reader.readAsArrayBuffer(file);
+ }
function escapeHtml(value) {
return value