Объект tn
является локальным для функции preload
.
Вместо этого определите его как глобальную переменную:
var tn = new Object();
function preload()
{
tn.variables=
{
//....
}
}
Кроме того, вы не можете получить другое значение свойства, когдавы просто определяете объект.
Измените textValue
на функцию вместо:
tn.variables =
{
textboxNode: document.getElementById('textbox'),
textNode: document.getElementById('text'),
textValue: function() {
return this.textNode.firstChild.nodeValue;
},
doneButton: document.getElementById('done')
};
Затем вызовите его как функцию, например:
tn.variables.textboxNode.setAttribute('value', tn.variables.textValue());