-1

さまざまなプラットフォームのサードパーティ アプリケーションやサイトに適用したい既存のヘッダーとフッター ナビゲーションがあります。

理想的には、ドキュメントの HEAD にスクリプト タグを 1 つ追加し、JavaScript を使用して次のことを行うようベンダーに指示したいと考えています。

  1. ドキュメント ヘッドにスタイルシートを追加する
  2. body 終了タグの前に script タグを追加します (jquery およびその他のライブラリと app.js)。
  3. app.js は、開始 body タグとその他の dom 操作 (クラスの追加、要素の削除など) の後にナビゲーション html をロードするために jQuery に依存します。

私はこの議論を見直した後、第三者に与えられた最初のスクリプトタグでドキュメントを書くことが最善の解決策ですか?

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

4

2 に答える 2

1

これには document.write を使用しません。ウィンドウがロードされた後にこのメソッドが呼び出されるたびに、ドキュメントに書き込んだものを除いてすべてが消去されるためです。

代わりに、document.createElement() を使用してタグを作成し、appendChild() を使用して js ファイルまたは要素を要素に追加し、次にドキュメントに追加します。

var script1 = document.createElement("script");
var script1File = document.createTextNode(myfilepath.js);
script1.appendChild(script1File);
document.body.appendChild(script1);

これにより、本文の下部にスクリプトが追加されます。このようにして、呼び出されるたびにドキュメントを消去することなく、トリガーを JS ファイルに設定できます。他の要素については、すすぎ、洗浄を繰り返します。

于 2015-11-25T16:36:23.293 に答える
1

document.write();ヘッドにコードを挿入するために必要はありません。リモート JavaScript ファイルをページのどこにでも埋め込む場合は、スクリプト/スタイル要素をヘッドに追加するだけでよいはずです。

 var myScript = document.createElement('script');
 myScript.setAttribute('src', '...');
 myScript.setAttribute('type', 'text/javascript');
 document.getElementsByTagName('head')[0].appendChild( myScript );

Google アナリティクスの埋め込みコードを見ると、いくつかの類似点があることがわかります。何が起こっているのかを理解できるように十分に短いです。

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', '...', 'auto');
  ga('send', 'pageview');

</script>
于 2015-11-25T16:24:07.893 に答える