2016-12-22 4 views
4

経由で動的に生成するスクリプトタグを延期またはasync属性を追加します。私は動的にこのように私のページのDOMにスクリプトタグを入れていますジャバスクリプト

<script src="https://www.youtube.com/iframe_api"></script> 

var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

これは、このような何かを生成する必要があります

私はちょうどこのように、このスクリプトタグに延期またはasyncに入れたい:

<script src="https://www.youtube.com/iframe_api" defer async></script> 

だから私はどのように行うのかこれはJavaScriptを使用して?

答えて

12

scriptタグにasyncを追加する必要はありません。その属性はenabled by defaultであり、そうでないと指示されない限り、スクリプトは非同期で読み込まれるためです。あなたはJavaScriptでsrc属性を変更するだけのようdeferについては

は、あなたもその1つのようにのように有効にすることができます。

var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 
tag.defer = true; 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

また、あなたはこのためsetAttribute()を使用することができます。

var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 
tag.setAttribute('defer',''); 
var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 
+1

これは機能します。ありがとう!!そしてupvoteを楽しむ!!!! – rahulserver

+1

'tag.defer = true'はどうですか? –

関連する問題