直接调用 XSLTForms 代码会带来维护问题,因为有时对象名称会发生变化。
一个好主意是创建包装函数来封装常见的 XSLTForms 任务。
以下是您可以使用的其中一些:
function xf_getInstance(modelId, instanceId)
{
var model = window.document.getElementById(modelId);
var doc = model.getInstanceDocument(instanceId);
return doc;
}
function xf_getNode(context, path)
{
return XsltForms_browser.selectSingleNode(path, context);
}
function xf_changeNode(node, value)
{
XsltForms_globals.openAction("XsltForms_change");
XsltForms_browser.setValue(node, value || "");
document.getElementById(XsltForms_browser.getMeta(node.ownerDocument.documentElement, "model")).xfElement.addChange(node);
XsltForms_browser.debugConsole.write("Setvalue " + node.nodeName + " = " + value);
XsltForms_globals.closeAction("XsltForms_change");
}
function xf_fireEvent(targetId, eventName)
{
XsltForms_globals.openAction("XsltForms_dispatch");
XsltForms_xmlevents.dispatch(document.getElementById(targetId), eventName);
XsltForms_globals.closeAction("XsltForms_dispatch");
}