diff --git a/lib/javascript/translator.html b/lib/javascript/translator.html
index a7b03190a..5e39518fd 100644
--- a/lib/javascript/translator.html
+++ b/lib/javascript/translator.html
@@ -14,7 +14,10 @@
var input = document.getElementById('inputText').value;
var fromLang = document.getElementById('fromLang').value;
var toLang = document.getElementById('toLang').value;
- addTranslation('output', grammar.translate(input, fromLang, toLang));
+ var output = document.getElementById('output');
+ var translation = grammar.translate(input, fromLang, toLang);
+ removeChildren(output);
+ output.appendChild(formatTranslation(translation));
}
function populateLangs () {
diff --git a/lib/javascript/translator.js b/lib/javascript/translator.js
index c476e65d8..99bd8b191 100644
--- a/lib/javascript/translator.js
+++ b/lib/javascript/translator.js
@@ -1,7 +1,3 @@
-function addTranslation (outputID, translation) {
- document.getElementById(outputID).appendChild(formatTranslation(translation));
-}
-
function formatTranslation (outputs) {
var dl1 = document.createElement("dl");
for (var fromLang in outputs) {
@@ -19,6 +15,8 @@ function formatTranslation (outputs) {
return dl1;
}
+/* DOM utilities for specific tags */
+
function addDefinition (dl, t, d) {
var dt = document.createElement("dt");
dt.appendChild(t);
@@ -40,3 +38,12 @@ function addOption (select, value, content) {
option.appendChild(document.createTextNode(content));
select.appendChild(option);
}
+
+/* General DOM utilities */
+
+/* Removes all the children of a node */
+function removeChildren(node) {
+ while (node.hasChildNodes()) {
+ node.removeChild(node.firstChild);
+ }
+}