IMG SRC标签和JavaScript

时间:2008-09-22 19:29:38

标签: javascript asp.net image

是否可以从IMG SRC标记调用JavaScript函数来获取图像网址?

像这样:

<IMG SRC="GetImage()" />

<script language="javascript">
   function GetImage() {return "imageName/imagePath.jpg"}
</script>

这是使用.NET 2.0。

13 个答案:

答案 0 :(得分:20)

不。这是不可能的,至少在所有浏览器中都不可能。你可以这样做:

<img src="blank.png" id="image" alt="just nothing">
<script type="text/javascript">
    document.getElementById('image').src = "yourpicture.png";
</script>

您最喜爱的JavaScript框架将提供更好的方式:)

答案 1 :(得分:10)

如果你喜欢黑客,那也可以。

<img src='blah' onerror="this.src='url to image'">

答案 2 :(得分:7)

  

是否可以从IMG SRC标记调用JavaScript函数来获取图像网址?

你的意思是做以下事情吗?

<img src="javascript:GetImage()" />

不幸的是,不 - 你做不到。但是,您可以执行以下操作:

function getImageUrl(img) {
   var imageSrc = "imageName/imagePath.jpg";
   if(img.src != imageSrc) { // don't get stuck in an endless loop
      img.src = imageSrc;
   }
}

然后,请使用以下html:

<img src="http://yourdomain.com/images/empty.gif" onload="getImageUrl(this)" />

如果您将实际图像设置为src属性,onload事件将仅触发 - 如果您未设置该属性或将其设置为空字符串或类似的东西,您将无法获得爱。将其设置为单个像素透明gif或类似的东西。

无论如何,这个hack有效,但根据你真正想要完成的事情,这可能不是最好的解决方案。我不知道你为什么要这样做,但也许你有充分的理由(你想与我们分享!)。

答案 3 :(得分:1)

你不能内联图像@src,但你应该能够立即从你的图像后面的内联脚本块中调用它:

<img src="" id="myImage"/>
<script type="text/javascript">
  document.getElementById("myImage").src = GetImage();
</script>

答案 4 :(得分:1)

您可以通过调用SRC中的aspx页面来动态提供图像。

实施例;

<img src="provideImage.aspx?someparameter=x" />

在页面方面,您需要将图像放入响应中并更改图像的内容类型。

唯一的“问题”是您的图片不会被索引,您最好在该提供商页面上放置一些缓存,否则您将破坏服务器。

答案 5 :(得分:0)

由于您使用的是.NET,因此可以添加runat="server"属性并在代码隐藏中设置src

答案 6 :(得分:0)

可能能够在服务器端执行此操作。或者,您可以附加一个onload事件来交换图像src。我想问题就变成了,为什么你必须在第一步中使用Javascript?

答案 7 :(得分:0)

之前我必须做这样的事情,而IIRC的诀窍就是你不能改变作为DOM树一部分的图像的src属性。因此,最好的办法是编写没有图像的HTML骨架,1)创建一个onLoad函数,用document.createElement生成一个新的img元素,2)用setAttribute()设置src属性,3)将它附加到你的DOM树。

答案 8 :(得分:0)

一次又一次地调用图像的OnLoad事件做这样的事情

答案 9 :(得分:0)

怎么样?

var imgsBlocks = new Array( '/1.png', '/2.png', '/3.png');
function getImageUrl(elemid) {  
var ind = document.getElementById(elemid).selectedIndex;
document.getElementById("get_img").src=imgsBlocks[ind]; 
}

它不起作用?

<img src="'+imgsBlocks[2]+'" id="get_img"/>

答案 10 :(得分:-1)

没有。 Img的SRC属性不是事件,因此内联JS永远不会触发。

答案 11 :(得分:-1)

你在寻找this.src吗?`

<img src='images/test.jpg' onmouseover="alert(this.src);"> 

答案 12 :(得分:-1)

一次又一次地调用图像的OnLoad事件做一些像这样的事情