2017-07-16 15 views
0

**免責事項:私は、アプリケーションのコアファイルを操作することを許可しないWebアプリケーションのテーマファイルを作成しています。 DOM。jQueryを使用してimg srcを変更する

ページにカスタムスクリプトを追加できるJSファイルがあります。私はjQueryでコーディングしています。

ページ上のいずれかの要素の画像ソースを変更したいと思います。画像のソースが...それが私のファイルの後にロードされ、私は触れることができないコアJSファイルによって動的にページに

をロードされているのは、HTMLがあるとしましょう:

<div class ="parent"> 
    <img src="http://example.com/image.jpg"> 
</div> 

私はのようなものを追加する場合私のjQueryのドキュメントに次の:私はこの機能を実行すると、画像がjQueryの後にロードされているので

$(document).ready(function(){ 
    function fixImgSrc(){ 
     var newSrc = 'http://example.com/new-image.jpg'; 
     var image = $('.parent').find('img'); 
     if (image.attr('src') !== newSrc){ 
      image.attr('src', newSrc); 
     } 
    }; 
    fixImgSrc; 
}); 

、それはundefinedを返します。画像全体を修正するには、この作業をコード全体で何度も繰り返す必要があります。場合によっては、関数を次のように実行することでこの問題を回避することができます。他のすべてがロードされた後に関数を実行するように関数を実行します。

setInterval(fixImgSrc(), 500); 

を新しいソースが取られているかどうかをチェック保つために:私は、これはサイト全体に仕事を得ることができ、他の回の唯一の方法は、悲惨を行うことです。

これを行うには、粘着性のない方法がありますか?これはハックであり、正しい方法ではないようです。さらに、ブラウザの負荷が強く、同じコマンドを何度も繰り返し実行しています。

答えて

1
$(document).ready(function(){ 
FixImgSrc(); 
} 

文書

の準備状態がこの

var image = $('.parent').find('img'); 
image.on("load",function(){ 
    if (image.attr('src') !== newSrc){ 
     image.attr('src', newSrc); 
} 
+0

私は、jQueryのため、すべてがすでに$(document).ready()ステートメントにラップされていることに言及すべきです。 –

+0

私は答えを更新します。 – Osama

1
$(document).ready(function(){ 
    alert("ready "); 
    FixImgSrc(); 
    } 

を試した後、ここでは、私はあなたがチェックする必要がある最初のだと思う機能は、作業できるようになるには、あなたのjqueryのが仕事やされていますない。

+0

すべてはすでに動作しており、既にdocument.readyラッパーにラップされています –

関連する問題