2009-06-09 7 views

答えて

7

私はJavascript equivalent for PHP's includeをチェックアウトします:

この記事では、PHP & JavaScriptが の開発の間のギャップを減少させるために を目指すプロジェクト「JavaScriptに移植 PHP」の一部です。

は直接相当するものはありません - あなたは、私は上記のリンクか、含めたいファイルを指すsrcで新しいscriptタグを書き出すdocument.writeを使用して機能して行くことができます。

編集:ここではは私が何を意味するかの初歩的な例です。

function include(path) { 
    document.write(
     "<script type=\"text/javascript\" src=\"" + path + "\"></script>" 
    ); 
} 

編集2:うわ、何醜いの例では、 - ここに1優れている:

function include(path) { 
    script = document.createElement("script"); 
    script.setAttribute("type", "text/javascript"); 
    script.setAttribute("src", path); 

    if (head = document.getElementsByTagName("head")[0]) { 
     head.appendChild(script); 
    } 
} 

document.writeはやっかいなことですが、私はそれを推奨してはいけません。あなたが私の例の一つに行くなら、2番目の例を使用してください。

+0

これは正しい方向性のようですが、私はHTMLページに直接埋め込むことができる非常に小さいものを探しています。残念なことに、私が今やっている作業のいくつかは、Google AdWordsのようなものがあります。Google AdWordsは、多くのサイトで同じコードが使用され、Googleのサーバーはコードを生成するアプリケーションを実行します。 – dmanexe

+0

クロスドメインローディングでない場合は、xmlhttprequest responseTextも評価されます。それが最近復活したJSANプロジェクトが最初にそれをしたのです。 –

0

JavaScriptをオンザフライで(ロードした後にコールバック関数を使用して)含めることができるようにしながら、私が書いたスクリプト(Mootoolsを使用)があります。選択した場合は、ライブラリを変更して選択したライブラリを操作できます。

接頭辞はちょうど私の名前空間であり、gvi.scriptsは現在ページに含まれているすべてのjavascriptファイルを含む配列であり、必要に応じて削除することができます。また、filename機能を削除することができます。これは、私の人生を楽にするために追加されたものです[require('some-script') vs require('js/some-script.js')]。

//if dom isn't loaded, add the function to the domready queue, otherwise call it immediately 
gvi.smartcall = function(fn) { 
    return (Browser.loaded) ? fn() : window.addEvent('domready', fn); 
} 

//For dynamic javascript loading 
gvi.require = function(files, callback, fullpath) { 
    callback = callback || $empty; 
    fullpath = fullpath || false; 
    var filename = function(file) { 
     if (fullpath == true) return file; 
     file = (file.match(/^js\/./)) ? file : "js/"+file; 
     return (file.match(/\.js$/) ? file : file+".js"); 
    } 

    var exists = function(src) { 
     return gvi.scripts.contains(src); 
    } 

    if ($type(files) == "string") { 
     var src = filename(files); 

     if (exists(src)) { 
      gvi.smartcall(callback); 
     } else { 
         new Asset.javascript(src, { 
       'onload' : function() { 
        gvi.scripts.push(src); 
        gvi.smartcall(callback); 
       } 
      }); 
     } 

    } else { 
     var total = files.length, loaded = 0; 
     files.each(function(file) { 
         var src = filename(file); 

      if (exists(src) && loaded == total) { 
       gvi.smartcall(callback); 

      } else if (exists(src)) { 
       loaded++; 
      } else { 
          new Asset.javascript(src, { 
        'onload' : function() { 
         gvi.scripts.push(src); 
         loaded++; 
         if (loaded == total) gvi.smartcall(callback); 
        } 
       }); 
      } 
     }); 
    } 
} 

そして、あなたはjQueryのは、このためのプラグインを持ってい

gvi.require('my-file', function() { 
    doStuff(); 
}); 

//or 
gvi.require(['file1', 'file2'], function() { 
    doStuff(); 
}); 
0

代わりにJavaScriptを使用して、私たちの仕事はより複雑になって、私たちは、外部含めるにはかなり簡単な方法を持っていますHTML形式のIFRAMEタグを使用してください。

**

<iframe src="....../path/filename.html" width="" height="">

**

さらに多くのカスタマイズが必要な場合我々はまた、CSSを使用してIFRAMEを制御することができます。

+0

また、外部のJavaScriptとして読み込むこともできます。これは、トラフィックを監視したり、バナーやものを追加するために、特定のコンポーネントをWebページに含める通常の方法です。 – transilvlad

関連する問題