3

このコードの違いは何ですか

      var head=document.getElementsByTagName('head')[0]
      var script=document.createElement('script')
       script.setAttribute('type', 'text/javascript')
       script.setAttribute('src', "http://your-script.com/address-here.js")
       head.appendChild(script)

そしてこのコード

      <script type="text/javascript" src="http://your-script.com/address-here.js">  

      </script> 

ありがとうございました。

4

4 に答える 4

2

上部の JavaScript は、ドキュメントの最初の head タグに、等しい<script type="text/javascript" src="http://your-script.com/address-here"></script>(または近い) 新しい要素を追加します。唯一の違いは、ブラウザーは HTML バージョンを見つけるとすぐにロードするのに対し、要素の追加が完了するまで JS はロードされないことです。

@lostsource が言及しているように、これは通常、依存スクリプトをロードするために使用されるか、ポリフィルを取り込むために使用されif(!someJSFeatureIWant) {//import the script here}ます。

于 2012-12-03T20:28:42.573 に答える
2

最初のものは通常、スクリプトに必要な追加の Javascript ファイルを含める方法として使用されます。(2 番目のコード サンプルのように動的に<script>タグを作成しているだけです)

たとえば、コア機能を main.js ファイルに含めてから、ユーザーの対話性に応じて他のスクリプトを含めることにします。(例: graphics.js、forms.js など)

JSON の「パディングされた」応答を返す URL を動的に含めることで、同じアプローチを使用してJSON-P要求を作成することもできます。iframes通常のXHRリクエストに対する主な利点は、<script>タグが同じオリジン ポリシーの影響を受けないことです。

于 2012-12-03T20:29:17.297 に答える
1

1 つは JavaScript で、作成後に DOM にスクリプトを追加します。もう 1 つは HTML で、作成中に DOM にスクリプトを追加します。

于 2012-12-03T20:27:56.973 に答える
0

基本的に、どちらも js ファイルをロードしますが、最初のサンプルはオンデマンドで効果的にもう一方を作成します。

var head=document.getElementsByTagName('head')[0]
var script=document.createElement('script')
script.setAttribute('type', 'text/javascript')
script.setAttribute('src', "http://your-script.com/address-here.js")
head.appendChild(script)

通常、これは、実行時にページに外部コードをロードするために使用します (作成後)。この例で使用されている特定の構文も、グローバル スコープを汚染するため、そのまま使用しないでください。

<script type="text/javascript" src="http://your-script.com/address-here.js">  
</script>

これは、スクリプト ファイルをロードするための通常の HTML 構文です。ページ コードがあなたの管理下にある場合、それを必要とする特別な状況や最適化の目的でない限り、これ以外のものを使用する理由はありません。

于 2012-12-03T20:33:00.387 に答える