2017-10-17 20 views
-2

この質問には、私が多く苦労しているので、この質問に答えてください。JavaScriptで画像ソースが変更されていません

マウスで画像ソースを変更しようとしています。私はそれをすることができますが、イメージはページに表示されていません。

イメージソースをクロスドメインURLに変更しようとしています。私は、DOMの画像ソースでは変化しているが、ページではないことがわかります。

LINKに記載されているすべてのソリューションを試しましたが、いずれも機能していません。 私に問題を解決させてください。
注:

  1. 私はネットワークタブの画像で見ることができるが(約1秒)をダウンロードするのに時間がかかっています。
  2. それはいつか画像がCODEロード、時にはそのない

され、中間の問題である:

document.getElementsByTagName('img')[0].addEventListener('mouseover', function() 
{ 
    document.getElementsByTagName('img')[0].setAttribute('src', 'url/of/the/image'); 
}); 
+0

あなたに役立ついくつかのコードを入れてください –

+0

@ÁlvaroTouzónが追加されました。コードに問題はありません。私はクロスドメインURLで画像ソースを変更することに苦労しています –

+0

ベスト推測はリーチ保護です。確かに、画像をJavaScriptなしでタグとしてページに貼り付けると、画像が機能するかどうかテストしましたか? – JJJ

答えて

0

0私は、コードを使用して解決した問題:イメージがロードされた後

ここ
function displayImage() { 
    let image = new image(); 
    image.src="source/of/image/returned/from/service"; 
    image.addEventListener('load', function() { 
     document.getElementsByTagName('img')[0].src = image.src; 
    },false); 
} 

コードで、私は画像への負荷イベントを添付していますが、画像のソースが変更されます。

0

は、あなたが他のすべての前のイメージのロードを試みたがありますか?

function initImages(){ 
    var imC = 0; 
    var imN = 0; 
    for (var i in Images) imN++; 
    for(var i in Images){ 
     var t=Images[i]; 
     Images[i]=new Image(); 
     Images[i].src=t; 
     Images[i].onload = function(){ 
      imC++; 
      if(imC == imN){ 
       console.log("Load Completed"); 
       preloaded = 1; 
      } 
     } 
    } 

} 

var Images = { 
    one image: "path/to/1.png", 
    .... 
} 

そして、ここで

if(preloaded == 1){ 
    start_your_page(); 
} 
+0

私はサービスコールから画像を取得しています。この呼び出しはマウスオーバー時です。ページの読み込み時に、私が持っている画像のセットはわかりません。 –

0

imgタグを削除し、新しいものと交換しますコード:

document.getElementsByTagName('img')[0].addEventListener('mouseover', function() { 
 
    var parent = document.getElementsByTagName('img')[0].parentElement; 
 
    parent.removeChild(document.getElementsByTagName('img')[0]); 
 
    var new_img = document.createElement("img"); 
 
    new_img.src = "https://upload.wikimedia.org/wikipedia/commons/6/69/600x400_kastra.jpg"; 
 
    parent.appendChild(new_img); 
 
});
<img src="https://www.w3schools.com/w3images/fjords.jpg">

+0

この方法を使用すると、新しいimgタグを作成するときに、作成された新しい画像タグにmouseoutイベントを追加する必要がありますが、これもまた課題です。 –

+0

なぜmouseoutイベントが必要ですか? –

+0

マウスオーバー時に元の画像に戻したい。 –

関連する問題