前提・実現したいこと
(数日前に同様の質問をしましたが、情報の追加修正をして改めて質問させていただきました)
Barba.jsを使用しています。
非同期で画面遷移した箇所にInstagramの投稿の埋め込みがあると、
画像が表示されないので、描画させたいです。
フィードではなく、一つ一つの投稿を埋め込みで表示させたいです。
発生している問題・エラーメッセージ
読み込みはされるが、投稿されている画像が下記のような表示になる。
ブラウザをリロードすると正常通り画像が読み込まれて表示される。
該当のソースコード
埋め込みコードは下記のような形です。
(投稿が特定されそうな箇所は置き換えました)
javascript
1<blockquote class="instagram-media" data-instgrm-permalink="https://www.instagram.com/p/hogehoge/" data-instgrm-version="8" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"> 2 <div style="padding:8px;"> 3 <div style=" background:#F8F8F8; line-height:0; margin-top:40px; padding:62.5% 0; text-align:center; width:100%;"> 4 <div style=" background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAMUExURczMzPf399fX1+bm5mzY9AMAAADiSURBVDjLvZXbEsMgCES5/P8/t9FuRVCRmU73JWlzosgSIIZURCjo/ad+EQJJB4Hv8BFt+IDpQoCx1wjOSBFhh2XssxEIYn3ulI/6MNReE07UIWJEv8UEOWDS88LY97kqyTliJKKtuYBbruAyVh5wOHiXmpi5we58Ek028czwyuQdLKPG1Bkb4NnM+VeAnfHqn1k4+GPT6uGQcvu2h2OVuIf/gWUFyy8OWEpdyZSa3aVCqpVoVvzZZ2VTnn2wU8qzVjDDetO90GSy9mVLqtgYSy231MxrY6I2gGqjrTY0L8fxCxfCBbhWrsYYAAAAAElFTkSuQmCC); display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px; width:44px;"></div> 5 </div> 6 <p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;"><a href="https://www.instagram.com/p/hogehoge/" style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;" target="_blank">hogehoge(@hogehoge)がシェアした投稿</a> - 7 <time style=" font-family:Arial,sans-serif; font-size:14px; line-height:17px;" datetime="20xx-xx-xxTxx:xx:xx+00:00">20xx年xx月xx日xx時xx分PDT</time> 8 </p> 9 </div> 10</blockquote> 11<script async defer src="//www.instagram.com/embed.js"></script>
試したこと
同様の現象がtwitterの投稿埋め込みでも発生しましたが、その場合は、下記のような処理でうまく表示されました。
javascript
1Barba.Dispatcher.on('newPageReady', function (currentStatus, oldStatus, container, newPageRawHTML) { 2 var twscript = document.createElement('script'); 3 twscript.setAttribute('async',''); 4 twscript.setAttribute('charset','utf-8'); 5 twscript.src = 'https://platform.twitter.com/widgets.js'; 6 document.body.appendChild(twscript); 7Barba.Pjax.start(); 8}); 9//非同期通信後に再読み込みするように設定した外部jsファイルにて 10$(window).on('load',function(){ 11 twttr.widgets.load(); 12});
Instagramの場合も、埋め込みコードに入っているスクリプト
<script async defer src="//www.instagram.com/embed.js"></script>を再読み込みさせているのですが、
twitterでいうところの
twttr.widgets.load()
のような、再構築?する関数がわかりません。
どなたかこ存じの方、またその他に良い方法なとありましたら、
ご教授お願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/16 04:57
2018/05/16 05:23
2018/05/16 07:56 編集
2018/05/16 08:21
2018/05/16 09:20