2017-05-13 12 views
3

スクリプトsource.jsがあるとします。二つの方法の2つのロードそれは ありますdocument.createElementappendChild スクリプトの読み込み方法を知ることは可能ですか

経由

  1. <script src="source.js"></script>
  2. は、ロードの方法を知ってsource.js内側から、それは可能ですか?

+2

彼らは同じでなければなりませんし、スクリプトは、それがロードされた方法を知っておく必要がありますない理由は本当にありませんか? – adeneo

答えて

0

単純な答え:いいえ。

あなたはその属性が上に存在する場合は、あなたのsource.jsファイルにあなたが見ることができ、余分な属性

<script src="source.js" data-scripttag="true"></script>

を持っているscriptタグを変更することができますタグ。そうであれば、スクリプトタグを介して呼び出されます。しかし、私はあなたがスクリプトを呼び出すHTML(第三者の統合?)を変更することができないという質問から推測します。

この例のスニペットはSOでは機能しませんが、HTMLを編集できる場合はこれを達成する方法を考えてください。

// foo.js 
 

 
var scriptTags = document.querySelectorAll('[data-scripttag]'); 
 
if (scriptTags.length === 1) { 
 
    // Called via script tag 
 
} else { 
 
    // injected 
 
}
<script src="foo.js" data-scripttag="true"></script> 
 

 
<script> 
 
    var fs = document.getElementsByTagName('script')[0]; 
 
    var s = document.createElement('script'); 
 
    s.src = 'foo.js'; 
 
    fs.parentNode.insertBefore(s, fs) 
 
</script>

+1

スクリプトタグの属性はインクルードされたファイルからどのようにアクセスできますか? – Vasan

+0

まあ、指定したデータ属性を持つすべての要素を得ることができます。この場合、 'data-scripttag'です。また、その要素をsource属性で見つけることもできます。 –

関連する問題