2017-08-01 94 views
1

我有一個jQuery腳本附加Instagram blockquote,但它不適用於第二個附加。第一次被追加時,blockquote會像它應該那樣轉換到iframe,但是如果我再次嘗試,它只會保留一個blockquote。jquery附加Instagram的blockquote嵌入動態不起作用

function appendInstagram($controls){ 
    var instagramURL = $('#js-instagram-url-edit').val(); 
    var instagramScript = '<script async defer src="//platform.instagram.com/en_US/embeds.js"><\/script>' 
    var instagramHtml = $('<blockquote class="instagram-media" 
         data-instgrm-captioned data-instgrm-version="7"> 
          <div style="padding:8px;"> 
          <a href="'+instagramURL+'" target="_blank"></a> 
          </div> 
         </blockquote>' + instagramScript); 
    updateContent(instagramHtml, $controls); 
} 

的想法是,當這個功能被excecuted,可以將blockquote獲得通過updateContent()

回答

0

,你有它的編碼要追加的JavaScript代碼就不會被執行追加。我嘲笑起來的東西,應該有所幫助:

<html> 
<head><title>test</title> 

<script src="http://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> 

<script> 
function appendInstagram($controls){ 
    var instagramURL = $("#url").val(); 

    var instagramHtml = '<blockquote class="instagram-media" data-instgrm-captioned data-instgrm-version="7">' + 
          '<div style="padding:8px;"><a href="'+instagramURL+'" target="_blank"></a></div>' + 
         '</blockquote>'; // + instagramScript; 

    $("#test").html(instagramHtml); 
} 

$(document).ready(function() { 
    appendInstagram(null); 

    var s = document.createElement("script"); 
    s.type = "text/javascript"; 
    s.src = "https://platform.instagram.com/en_US/embeds.js"; 
    s.async = true; 
    $("#test").append(s); 
}); 
</script> 
</head> 
<body> 
<div id="test"> 

</div> 
<input type="text" id="url" value="https://www.instagram.com/p/BW52LY1FMdf/?taken-by=birminghamfencingclub_bfc" /> 

</body> 
</html> 

欲瞭解更多信息,看看這裏:How to Append <script></script> in javascript?

1

我發現Instagram的有這個

window.instgrm.Embeds.process() 

需要加以執行每一次。

+0

它的作品,但如何?這是怎麼回事? –