2008-09-22 143 views
10

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

像这样:

<IMG SRC="GetImage()" /> 

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

这是使用.NET 2.0。

+0

这个问题并没有真正描述你想达到什么目的? – Ian 2008-09-22 19:33:09

+0

同意 - 我花了一分钟才知道他在... – 2008-09-23 00:16:36

+0

不同意 - 显而易见。 – DragonLord 2012-11-13 00:28:37

回答

20

都能跟得上。这是不可能的,至少在所有的浏览器中都是如此。由于您使用的

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

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

-1

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

+0

但是,它确实需要一个URI并且可以运行javascript:伪URI。这是XSS漏洞的原因。 – Quentin 2009-08-27 12:22:31

1

你不能做它内联图像@src,但你应该能够从一个内嵌脚本块叫它马上你的形象以下:

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

Opera不支持内嵌脚本标记?这对我来说是新闻。 – levik 2008-09-22 19:38:07

-1

您是否在寻找this.src`

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

:你可以做这样的事情呢? .NET,你可以添加runat="server"属性,并在代码隐藏中设置src

0

可能能够在服务器端做到这一点。或者,你可以附加一个onload事件来交换图像src。我想这个问题会变成,为什么你必须以第一步的速度使用Javascript?

1

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

Ex;

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

在页边,您`ll需要把图像中的反应和改变图像的内容类型。

唯一的“问题”是你的图像不会被索引,你最好在该提供者页面上放一些缓存,否则你会蹂躏服务器。

7

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

你的意思是做下面的事吗?

<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)" /> 

onload事件只会火,如果你有一个实际的图像设置src属性 - 如果你不要设置该属性或将其设置为空字符串或类似的东西,你将不会得到任何爱。将其设置为单个像素透明GIF或类似的东西。

无论如何,这个黑客行得通,但取决于你真正想要完成的事情,这可能不是最好的解决方案。我不知道你为什么想这样做,但也许你有一个很好的理由(你想与我们分享!)。

0

我有之前做这样的事情,并IIRC的伎俩卷起是,你无法改变这就是DOM树的一部分图像的src属性。所以你最好的选择是编写你的HTML框架而不用图像,1)创建一个onLoad函数,用document.createElement生成一个新的img元素,2)用setAttribute()设置src属性,3)将它附加到你的DOM树。图像的

-1

OnLoad事件一次又一次地称为做一些喜欢的事情一次又一次地称为图像的这种

0

OnLoad事件做这样

10

一些事情,如果你在黑客的心情,这也适用。

<img src='blah' onerror="this.src='url to image'"> 
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"/>