replace-node
Der Aufruf (replace-node node-id html) erzeugt eine JavaScript Zeichenkette, die das innerHTML des DOM Nodes mit der Id node-id (ein Symbol) durch das HTML aus html (eine Zeichenkette) ersetzt, wenn es im Browser ausgeführt wird. Der erzeugte JavaScript Quellcode setzt das dojo Toolkit 1.2 oder 1.3 voraus.
{
/* Teil 1 */
var node=dojo.byId('... node-id ...');
try
{
var list=dojo.query('[widgetId]', node);
dojo.forEach(list, function(innernode)
{
var widget=dijit.byNode(innernode);
widget.destroy();
});
while(node.firstChild)
{
dojo._destroyElement(node.firstChild);
}
}
catch(e)
{
console.error('replace-node cannot destroy', e);
}
/* Teil 2 */
try
{
dojo.html.set(node, '... html ...', {parseContent:true});
}
catch(e)
{
console.error('replace-node cannot set', e);
}
};
Der erste Teil des Skripts identifiziert alle Widgets in dem zu ersetzenden HTML-Code und ruft deren Destruktoren auf. Danach wird der DOM-Baum freigegeben. Im zweiten Teil des Skripts wird das innerHTML des Nodes gesetzt und die eventuell im neuen Inhalt des Nodes enthaltenen Widgets erzeugt und initialisiert.
Die Funktion replace-node ist wichtig bei der Erstellung von Script Actions (siehe Script Action und Action).
{
/* Teil 1 */
var node=dojo.byId('... node-id ...');
try
{
var list=dojo.query('[widgetId]', node);
dojo.forEach(list, function(innernode)
{
var widget=dijit.byNode(innernode);
widget.destroy();
});
while(node.firstChild)
{
dojo._destroyElement(node.firstChild);
}
}
catch(e)
{
console.error('replace-node cannot destroy', e);
}
/* Teil 2 */
try
{
dojo.html.set(node, '... html ...', {parseContent:true});
}
catch(e)
{
console.error('replace-node cannot set', e);
}
};
Der erste Teil des Skripts identifiziert alle Widgets in dem zu ersetzenden HTML-Code und ruft deren Destruktoren auf. Danach wird der DOM-Baum freigegeben. Im zweiten Teil des Skripts wird das innerHTML des Nodes gesetzt und die eventuell im neuen Inhalt des Nodes enthaltenen Widgets erzeugt und initialisiert.
Die Funktion replace-node ist wichtig bei der Erstellung von Script Actions (siehe Script Action und Action).