我想弄清楚我的头。我有一个员工的XML文件,照片存储在其他服务器中。我使用创建XML的SQL查询来构建URL。
我需要显示所有缺少照片的员工。
顺序读取XML的函数如下:
function updateBoard() {
var html;
xmlDoc = "";
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "xml/no_photo.xml", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
var x = xmlDoc.getElementsByTagName("Row");
html = '<br><table class="transp" align="center"><tbody><tr><td valign="top"><div class="tbl_head_bright">Foto</div></td></td><td valign="top"><div class="tbl_head_bright"># Empleado</div></td><td><div class="tbl_head_bright">Nombre</div></td><td valign="top"><div class="tbl_head_bright">Departamento</div></td></tr>';
for (i = 0; i < x.length; i++) {
var img = new Image();
img.onerror = function() {
html += '<tr><td><span class="dchange_bright"> MISSING </span></td>';
html += '<td><span class="dchange_bright">' + empid + '</span></td>';
html += '<td class="left"><span class="dchange_bright">' + Nombre + '</span></td>';
html += '<td class="left"><span class="dchange_bright">' + department + '</span></td></tr>';
}
img.src = x[i].getElementsByTagName("url")[0].childNodes[0].nodeValue
var Nombre = x[i].getElementsByTagName("nombres")[0].childNodes[0].nodeValue + ' ' + x[i].getElementsByTagName("apellidos")[0].childNodes[0].nodeValue
var empid = x[i].getElementsByTagName("emp_id")[0].childNodes[0].nodeValue
var department = x[i].getElementsByTagName("departamento")[0].childNodes[0].nodeValue
};
html += '</tbody></table></div>'
$('#mainboard').html(html);
}
这不起作用。它不会显示任何内容。控制台显示一堆404错误,这些错误是照片遗失,但什么也没有显示。
我尝试在onload事件上使用continue,但是会引发仅在循环中才允许继续的错误。我是谁,但显然位于函数内部会破坏逻辑。
我不是一个精通javascript的人,我还在学习并且还有很长的路要走,所以我缺少一些基本概念,例如循环和函数的工作方式以及整个逻辑的工作方式,所以请耐心等待我。
谢谢!
答案 0 :(得分:0)
我使用ETL修复了此问题。无法找到通过js完成此操作的方法。