diff options
Diffstat (limited to 'browser-demo')
| -rw-r--r-- | browser-demo/demo.js | 45 |
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 |
