0

下面是我的代码......

    Response.Write("<Table style='border:1px solid #0B5226;background-color: white;' runat='server' width = '100%'> <Tr style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; color:#000000; vertical-align:middle; text-align:left;'><Td width='15%'> <img src='../Images_v4/Common/Progress.gif' /></Td><Td width='80%' style='text-align: left;word-break: break-all;'><Div>In</Div></Td></Table>");
    Response.Flush();
    Response.Write("<script language='javascript'>");

    Response.Write("var nr = document.all.length;");
    Response.Write("for(i=0;i<nr;i++)");
    Response.Write("{");

    Response.Write("if(document.all(i).tagName == 'IMG' && document.all(i).nameProp == 'Progress.gif')");
    Response.Write("{");
    Response.Write("document.all(i).src = '../Images_v4/Common/Success.png';");
    Response.Write("}");

    Response.Write("if(document.all(i).tagName == 'DIV' && document.all(i).innerHTML == 'In Progress...')");
    Response.Write("{");
    Response.Write("document.all(i).innerHTML = 'Processed Successful';");
    Response.Write("}");



    Response.Write("}");
    Response.Write("</script>");

    Response.Flush(); 

上面的代码通过写入响应显示来自 aspx 页面的状态消息,并且在特定事情完成工作一段时间后,它会将状态图像从进度更改为成功。上面的代码在 IE 中运行良好,因为document.all(i).nameProp似乎在 IE 中运行。但是这个东西在 chrome 和 mozilla 等其他浏览器中不起作用。是否有任何替代document.all(i) .nameProp适用于所有浏览器。或任何其他实现此目的的方法。我正在使用 C# Web 应用程序

4

1 回答 1

0

我建议document.getElementsByTagName('*')document.all仅适用于旧 IE (IE5)。

nameProp 也仅限于 IE,但可以通过简单的正则表达式函数轻松实现类似的功能:

对于绝对兼容性:

function getFileName(path) {
    return path.match(/[-_\w]+[.][\w]+$/i)[0];
}

var all = document.all || document.getElementsByTagName('*');
for(var i=0, elem; elem=all[i++];) {
    if (elem.tagName == 'IMG' && getFileName(elem.src) == 'Progress.gif') {
        elem.src = '../Images_v4/Common/Success.png';
    }
    ... THE SAME FOR THE DIVS.
}

最好不要浏览页面上的所有元素:

var imgs = document.getElementsByTagName('img');
var divs = document.getElementsByTagName('div');
for(var i=0, elem; elem=imgs[i++];) {
    if (getFileName(elem.src) == 'Progress.gif') {
        elem.src = '../Images_v4/Common/Success.png';
    }
}
于 2012-09-07T08:41:20.477 回答