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 ページからのステータス メッセージを表示し、特定の処理が完了すると、ステータス イメージが進行中から成功に変わります。document.all ( i).namePropは IE で動作するように見えるため、上記のコードは IEで正常に動作します。しかし、このことは chrome や mozilla などの他のブラウザーでは動作しません。.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 に答える