この JavaScript 関数は、クライアント側からアクセスできない ASP.NET Web コントロール プロパティを参照しようとしているようです。ただし、ASP.NET によってページに出力される HTML エンティティとその属性を参照することはできます。
JavaScript コードが .ascx コード内のコードであると仮定して、次の行を変更します。
var images = document.getElementById("GetQuote").getAttribute("ImageUrl");
これに:
var images = document.getElementById('<%=GetQuote.ClientID%>').getAttribute("src");
これにより、ASP.NET が GetQuoteImage
コントロール用に作成したクライアント ID が挿入され、クライアント側から参照できるようになります。また、サーバー側コントロールのプロパティに対応するHTMLimg
要素 ( ) の適切な属性も参照します。src
ImageUrl
Image
編集: TheVillageIdiot の応答を見た後 (そして、コードをもう少し詳しく読んだ後、最初に行うべきだった)、images
変数を配列として使用しようとしていることに気付きました。ID に「GetQuote」というテキストを含む複数の画像要素 (GetQuote1、GetQuote2 など) を照合しようとしているようです。
クライアント側でこれを行う必要があり、jQuery のようなフレームワークを使用していないと仮定して、これを試してください。
window.onload = function()
{
// get all img elements on the page and load them into an array
var images = document.getElementsByTagName("img");
// iterate through the image array
for (var i = 0; i < images.length; i++)
{
// check that the current image's id contains "GetQuote" (case sensitive)
if (images[i].id.indexOf("GetQuote") >= 0)
{
var image_png_src = images[i].src;
var image_gif_src = image_png_src.replace(".png", ".gif");
images[i].src = image_gif_src;
}
}
};