Javascriptを使用してファイルを参照またはインクルードする最良の方法は、PHPのinclude()機能に最も近い機能を探し出すことです。同等のJavascript関数がPHPのinclude()のようなファイルを参照できますか?
答えて
私は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番目の例を使用してください。
これは正しい方向性のようですが、私はHTMLページに直接埋め込むことができる非常に小さいものを探しています。残念なことに、私が今やっている作業のいくつかは、Google AdWordsのようなものがあります。Google AdWordsは、多くのサイトで同じコードが使用され、Googleのサーバーはコードを生成するアプリケーションを実行します。 – dmanexe
クロスドメインローディングでない場合は、xmlhttprequest responseTextも評価されます。それが最近復活したJSANプロジェクトが最初にそれをしたのです。 –
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();
});
のようにそれを呼び出す:http://plugins.jquery.com/project/include
代わりにJavaScriptを使用して、私たちの仕事はより複雑になって、私たちは、外部含めるにはかなり簡単な方法を持っていますHTML形式のIFRAMEタグを使用してください。
**
<iframe src="....../path/filename.html" width="" height="">
**
さらに多くのカスタマイズが必要な場合我々はまた、CSSを使用してIFRAMEを制御することができます。
また、外部のJavaScriptとして読み込むこともできます。これは、トラフィックを監視したり、バナーやものを追加するために、特定のコンポーネントをWebページに含める通常の方法です。 – transilvlad
- 1. 参照付きPHP再帰関数
HTMLファイルや別のJavaScriptファイルについて話していますか? – ceejayoz