7

私が現在経験している問題は、特定のスクリプトと CSS ファイルのみを実行できるようにしたいということです。間違ったページで実行すると、ブラウザー コンソールでエラーが発生するためです。

Meteor 用の「Iron router」を基本コードのみで使用して動作させています。さて、スクリプトをパラメーターとして送信して、ページにロードさせたいスクリプトのみをロードする方法はありますか?

4

5 に答える 5

1

これを行う公式の方法がまだないことは事実ですが、これを行う効果的な方法がいくつかあります。たとえば、Disqus をブログ セクションに読み込む方法を考えてみましょう。

Template.blog.rendered = function() {  
  setTimeout(function(){
     var disqus_shortname = 'disqus_shortname'; // required: replace example with your forum shortname
     var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
     dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
     (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  })
}

Josh Owen のブログからの抜粋です。違いは、これがタイムアウトであるため、テンプレートが実際にレンダリングされるのを待つためにブロックすることです。

このスクリプトが行うことは、スクリプト要素を作成し、その src を設定して、テンプレートのヘッドまたはボディに子として追加することです。繰り返しますが、これはテンプレートがレンダリングされた後にのみ行われるため、すべての要素がスクリプトで使用可能になります。

Iron Router を使用している場合は、onAfterAction で同じことができます。重要なのは、新しいスクリプトを dom の子ノードとして追加することです。お役に立てれば。

于 2015-06-16T15:13:37.220 に答える