IMG SRC标签和JavaScript
是否可以从IMG SRC标签调用JavaScript函数以获取图像网址?
像这样:
<IMG SRC="GetImage()" /> <script language="javascript"> function GetImage() {return "imageName/imagePath.jpg"} </script>
这是使用.NET 2.0。
解决方案
否。Img的SRC属性不是事件,因此内联JS将永远不会触发。
我们不能在图像@src中内嵌它,但是我们应该能够在图像后立即从内嵌脚本块中调用它:
<img src="" id="myImage"/> <script type="text/javascript"> document.getElementById("myImage").src = GetImage(); </script>
没有。这是不可能的,至少不是在所有浏览器中都如此。我们可以改为执行以下操作:
<img src="blank.png" id="image" alt="just nothing"> <script type="text/javascript"> document.getElementById('image').src = "yourpicture.png"; </script>
我们最喜欢的JavaScript框架将提供更好的方法:)
我们在寻找this.src吗?
<img src='images/test.jpg' onmouseover="alert(this.src);">
由于我们使用的是.NET,因此可以添加runat =" server"
属性,并在后面的代码中设置src
。
我们可能可以在服务器端执行此操作。或者,我们可以添加一个onload事件以将映像src换出。我想问题就变成了,为什么我们必须首先使用Javascript?
我们可以通过在SRC中调用aspx页面来动态提供图片。
前任;
<img src="provideImage.aspx?someparameter=x" />
在页面一侧,我们需要将图像放入响应中并更改图像的内容类型。
唯一的"问题"是图像不会被索引,因此最好在该提供程序页面上放置一些缓存,否则我们将破坏服务器。
Is it possible to call a JavaScript function from the IMG SRC tag to get an image 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)" />
仅当我们将实际图像设置为src属性,而不设置该属性或者将其设置为空字符串或者类似内容时,才会触发onload事件。将其设置为单个像素的透明gif或者类似的东西。
无论如何,这种技巧是可行的,但是根据我们真正要完成的工作,这可能不是最佳解决方案。我不知道我们为什么要这样做,但也许我们有充分的理由(想与我们分享!)。
之前,我必须做过类似的事情,而IIRC的诀窍在于,我们无法更改DOM树中一部分图像的src属性。因此,最好的选择是编写没有图像的HTML框架,然后1)创建一个onLoad函数,该函数使用document.createElement生成一个新的img元素; 2)使用setAttribute()设置src属性; 3)将其添加到DOM树。
图像的OnLoad事件一次又一次地执行这样的操作
图像的OnLoad事件一次又一次地执行这样的操作
如果我们想使用骇客技术,也可以使用。
<img src='blah' onerror="this.src='url to image'">