IMG SRC теги и JavaScript
Можно ли вызвать функцию JavaScript из тега IMG SRC, чтобы получить URL-адрес изображения?
Вот так:
<IMG SRC="GetImage()" />
<script language="javascript">
function GetImage() {return "imageName/imagePath.jpg"}
</script>
Это использует .NET 2.0.
Ответы
Ответ 1
Неа. Это невозможно, по крайней мере, не во всех браузерах. Вместо этого вы можете сделать что-то вроде этого:
<img src="blank.png" id="image" alt="just nothing">
<script type="text/javascript">
document.getElementById('image').src = "yourpicture.png";
</script>
Ваша любимая структура JavaScript обеспечит более приятные способы:)
Ответ 2
Если вы настроены на хаки, это тоже работает.
<img src='blah' onerror="this.src='url to image'">
Ответ 3
Можно ли вызвать функцию JavaScript из тега IMG SRC, чтобы получить 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 или что-то подобное.
В любом случае, этот хак работает, но в зависимости от того, что вы действительно пытаетесь выполнить, это может быть не лучшее решение. Я не знаю, почему вы хотели бы это сделать, но, возможно, у вас есть веская причина (что вы хотели бы поделиться с нами!).
Ответ 4
Вы не можете сделать это в строке image @src, но вы должны иметь возможность вызвать его из встроенного блока script сразу после вашего изображения:
<img src="" id="myImage"/>
<script type="text/javascript">
document.getElementById("myImage").src = GetImage();
</script>
Ответ 5
вы можете динамически загружать изображение, вызывая страницу aspx в SRC.
Ех;
<img src="provideImage.aspx?someparameter=x" />
На стороне страницы вам нужно будет поместить изображение в ответ и изменить тип контента для изображения.
Единственная проблема заключается в том, что ваши изображения не будут проиндексированы, вы лучше поместите некоторый кеш на эту страницу поставщика или разрушите сервер.
Ответ 6
Поскольку вы используете .NET, вы можете добавить атрибут runat="server"
и установить src
в свой код.
Ответ 7
Вы можете выполнить на стороне сервера. В качестве альтернативы вы можете прикрепить событие onload для замены образа src. Я предполагаю, что тогда возникает вопрос, почему вам нужно использовать Javascript в первом темпе?
Ответ 8
Мне приходилось делать что-то подобное раньше, и IIRC трюк заканчивается тем, что вы не можете изменить атрибут src образа, который является частью дерева DOM. Поэтому лучше всего написать свой скелет HTML без изображения и 1) создать функцию onLoad, которая генерирует новый элемент img с document.createElement, 2) установить атрибут src с помощью setAttribute() и 3) прикрепить его к вашей DOM дерево.
Ответ 9
Событие изображения OnLoad, вызываемое снова и снова, делает что-то вроде этого
Ответ 10
как насчет этого?
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"/>
Ответ 11
Нет. Атрибут Img SRC не является событием, поэтому встроенный JS никогда не будет срабатывать.
Ответ 12
Вы ищете this.src? `
<img src='images/test.jpg' onmouseover="alert(this.src);">
Ответ 13
Событие изображения OnLoad, вызванное снова и снова, делает что-то вроде этого