Есть такой файл:
test.xul

Выделить код

Код:

<?xml version="1.0" encoding="UTF-8"?>
<side id="id" title="title" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	<script src="js.js"/>
	<tree id="tree" flex="1"  hidecolumnpicker="true">	
		<treecols>
			<treecol id="id1" flex="1" primary="true" hideheader="true"/>
		</treecols>	
		<treechildren id="main_child">
		</treechildren>	
	</tree>
</side>

js.js

Выделить код

Код:

alert('OK');
var tree=document.getElementById("main_child"); 
var item=document.createElement("treeitem"); 
var row=document.createElement("treerow");
var cell=document.createElement("treecell");
cell.setAttribute("label","NewCell");
row.appendChild(cell);
item.appendChild(row);
tree.appendChild(item);
alert('OK');

Alertы введены для проверки работоспособности. Вот второй alert не выводится когда доходит до tree.appendChild(item).
Соответственно и элементы не добавляются. Подскажите, может что-то в xule не дописал или в js ошибка?

Ну так обращение к

Выделить код

Код:

var tree=document.getElementById("main_child");

происходит еще до того, как оно появится.

Если, например, завернуть весь код в

Выделить код

Код:

window.onload = function() { ... };

, то будет работать.

Спасибо. Помогло.