11

IMG SRCタグからJavaScript関数を呼び出して画像のURLを取得することは可能ですか?

このような:

<IMG SRC="GetImage()" />

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

これは.NET2.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()" />

残念ながら、それはできません。ただし、次のハックを実行できます。

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 などに設定します。

とにかく、このハックは機能しますが、実際に何を達成しようとしているかによっては、これが最善の解決策ではない場合があります. なぜあなたがこれをやりたいのかわかりませんが、あなたには正当な理由があるかもしれません (それを私たちと共有したいのです!)。

于 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

これはどう?

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 に答える
0

私は以前にこのようなことをしなければなりませんでした.IIRCのトリックは、DOMツリーの一部である画像のsrc属性を変更できないということです. したがって、最善の策は、画像なしで HTML スケルトンを記述し、1) document.createElement で新しい img 要素を生成する onLoad 関数を作成し、2) setAttribute() で src 属性を設定し、3) DOM にアタッチすることです。木。

于 2008-09-23T00:29:16.013 に答える
0

何度も呼び出される画像のOnLoadイベントは、このようなことをします

于 2008-12-10T10:52:34.473 に答える
-1

いいえ。ImgのSRC属性はイベントではないため、インラインJSが起動することはありません。

于 2008-09-22T19:31:03.407 に答える
-1

何度も呼び出される画像のOnLoadイベントは、このようなことをします

于 2008-12-10T10:50:41.403 に答える