11

是否可以从 IMG SRC 标签调用 JavaScript 函数来获取图片 url?

像这样:

<IMG SRC="GetImage()" />

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

这是使用 .NET 2.0。

4

13 回答 13

20

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

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

你最喜欢的 JavaScript 框架会提供更好的方法 :)

于 2008-09-22T19:33:00.033 回答
10

如果您想进行黑客攻击,这也可以。

<img src='blah' onerror="this.src='url to image'">
于 2010-10-26T19:58:42.443 回答
8

是否可以从 IMG SRC 标签调用 JavaScript 函数来获取图片 url?

您的意思是执行以下操作吗?

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

不幸的是,不——你不能那样做。但是,您可以执行以下 hack:

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 是有效的,但取决于你真正想要完成的事情,这可能不是最好的解决方案。我不知道您为什么要这样做,但也许您有充分的理由(您想与我们分享!)。

于 2008-09-23T00:16:13.347 回答
1

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

<img src="" id="myImage"/>
<script type="text/javascript">
  document.getElementById("myImage").src = GetImage();
</script>
于 2008-09-22T19:31:39.770 回答
1

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

前任;

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

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

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

于 2008-09-22T20:29:51.707 回答
0

您在寻找 this.src 吗?

<img src='images/test.jpg' onmouseover="alert(this.src);"> 
于 2008-09-22T19:33:12.293 回答
0

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

于 2008-09-22T19:34:01.870 回答
0

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

于 2008-09-22T19:34:57.703 回答
0

我以前不得不做这样的事情,而 IIRC 的窍门最终是你不能更改 DOM 树的一部分的图像的 src 属性。因此,最好的办法是编写不带图像的 HTML 骨架,并 1)创建一个 onLoad 函数,该函数使用 document.createElement 生成一个新的 img 元素,2)使用 setAttribute() 设置 src 属性,以及 3)将其附加到您的 DOM树。

于 2008-09-23T00:29:16.013 回答
0

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

于 2008-12-10T10:52:34.473 回答
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"/>
于 2012-05-09T08:53:28.910 回答
-1

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

于 2008-09-22T19:31:03.407 回答
-1

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

于 2008-12-10T10:50:41.403 回答