Ne () yeteneği, PHP'nin en yakın işlevsellik arayanlar, JavaScript kullanarak bir dosyayı başvuru veya eklemek için en iyi yoldur.
Ben kontrol Javascript equivalent for PHP's include olacaktır:
This article is part of the 'Porting PHP to Javascript' Project, which aims to decrease the gap between developing for PHP & Javascript.
Doğrudan eşdeğeri yoktur - Eğer ben yukarıda bağlantılı fonksiyonu ile gitmek veya document.write
bir src
işaret yeni bir script
etiketini yazmak için kullanabileceğiniz ya Eğer eklemek istediğiniz dosyası.
Edit: Burada ne demek istediğimi ilkel bir örnek:
function include(path) {
document.write(
"<script type=\"text/javascript\" src=\"" + path + "\"></script>"
);
}
Edit 2: Uh, ne çirkin bir örnek - burada daha iyi bir tanesidir:
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
şeyler yapmanın bir hackish yoludur ve ben bunu tavsiye ettim olmamalıdır. Benim örneklerinden biri ile giderseniz, ikinci birini kullanın lütfen.
Ben bir (onun yüklü sonra bir geri arama fonksiyonu ile) anında javascript dosyaları dahil etmek için izin verir I (Mootools kullanarak) bir süre önce yazdığım bir komut dosyası var. İsterseniz seçtiğiniz kütüphane çalışması için değiştirebilirsiniz.
gvi
önek sadece benim ad ve isterseniz gvi.scripts, o anda sayfada dahil tüm javascript dosyaları içeren bir dizi kaldırılabilir unutmayın. Ayrıca, filename
function sadece [require('some-script')
require('js/some-script.js')
vs] hayatımı kolaylaştırmak için eklendi, kaldırılabilir.
//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);
}
});
}
});
}
}
Ve sen gibi çağrı
gvi.require('my-file', function() {
doStuff();
});
//or
gvi.require(['file1', 'file2'], function() {
doStuff();
});
jQuery bunun için bir eklenti var: http://plugins.jquery.com/project/include
Bunun yerine javascript kullanarak ve bizim iş daha karmaşık hale biz HTML IFRAME etiketini kullanarak harici dosya eklemek için oldukça kolay bir yol var.
**
<iframe src="....../path/filename.html" width="" height="">
**
Biz de daha fazla özelleştirme gerekirse CSS kullanarak iframe kontrol edebilirsiniz.