私はScottJehlの画像塗りつぶしを使用して、自分のサイトで応答性の高い画像を提供しています。私のコードは次のようになります。
<div data-picture id="front-image">
<div data-src="image.jpg"></div>
<div data-media="(min-width: 600px)" data-src="image-medium.jpg"></div>
<div data-media="(min-width: 900px)" data-src="image-large.jpg"></div>
<noscript><img src="image.jpg"></noscript>
</div>
ページがPicturefillによって処理された後、コードは次のようになります。
<div data-picture="" id="front-image">
<div data-src="image.jpg"></div>
<div data-media="(min-width: 600px)" data-src="image-medium.jpg"></div>
<div data-media="(min-width: 900px)" data-src="image-large.jpg"></div>
<noscript><img src="image.jpg"></noscript>
<img alt="" src="image-large.jpg">
</div>
メインdivの最後にある新しいimgタグに注目してください。これはスクリプトによって生成されたものです(この場合、ブラウザウィンドウが大きいため、大きな画像になります)。
その画像のsrcを取得したいのですが、
$(function() {
var src = $('#front-image img').attr('src');
// do other stuff with that variable once I have it
});
Picturefillの後に呼び出されるjavascriptファイルでは、変数は空です。
私の推測では、ドキュメントは「準備完了」であり、Picturefillマジックが発生する前にjsが評価されます。Picturefillがその義務を果たすまでコードを待機させて、そのimgタグからsrcを取得できるようにするにはどうすればよいですか?
[ここでは完全にJavaScriptの人ではないので、srcを取得する別の方法がある場合、または私の推測が完全に間違っている場合は、修正してください!]