此 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;
}
}
};