我写了一些Javascript,它使用FormAPI for Teamsite循环遍历xml节点,并从其中一个节点中删除一个值。removeID 函数仅在警报在其中时才能正常工作。我尝试将操作分成不同的函数并在它们上放置 setTimeout(),但没有任何效果。该脚本仅在保存和关闭页面时执行,因此页面肯定已加载。有人有其他想法吗?
这有效:
function removeID(xPath) {
if(xPath.getChildByName('path') != undefined && xPath.getChildByName('id') != undefined){
if(xPath.getChildByName('path').getValue() == "" && xPath.getChildByName('id').getValue() != ""){
xPath.getChildByName('id').setValue('');
alert("replaced ");
}
}
return true;
}
这不起作用(无警报):
function removeID(xPath) {
if(xPath.getChildByName('path') != undefined && xPath.getChildByName('id') != undefined){
if(xPath.getChildByName('path').getValue() == "" && xPath.getChildByName('id').getValue() != ""){
xPath.getChildByName('id').setValue('');
}
}
return true;
}
FormAPI 不是 Javascript,而是基于 Javascript 的 HP 特定框架。您的代码正在尝试操作 XML(在 TeamSite 世界中也称为 DCR),这是一种不好的做法,可能会导致不良结果。
相反,您需要IWItem对象,特别是IWItem.deleteInstance()方法来实现结果。
您还应该尝试从像自动编织这样的供应商那里获得一些培训,这样您就不会"破解"系统。