スクリプトsource.js
があるとします。二つの方法の2つのロードそれは ありますdocument.createElement
とappendChild
スクリプトの読み込み方法を知ることは可能ですか
経由
<script src="source.js"></script>
- は、ロードの方法を知って
source.js
内側から、それは可能ですか?
スクリプトsource.js
があるとします。二つの方法の2つのロードそれは ありますdocument.createElement
とappendChild
スクリプトの読み込み方法を知ることは可能ですか
経由
<script src="source.js"></script>
source.js
内側から、それは可能ですか?単純な答え:いいえ。
あなたはその属性が上に存在する場合は、あなたの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>
スクリプトタグの属性はインクルードされたファイルからどのようにアクセスできますか? – Vasan
まあ、指定したデータ属性を持つすべての要素を得ることができます。この場合、 'data-scripttag'です。また、その要素をsource属性で見つけることもできます。 –
彼らは同じでなければなりませんし、スクリプトは、それがロードされた方法を知っておく必要がありますない理由は本当にありませんか? – adeneo