Karşılaştırılabilir Ne Javascript fonksiyonu PHP'nin gibi bir dosyayı başvuruda bulunabilir include ()?

4 Cevap php

Ne () yeteneği, PHP'nin en yakın işlevsellik arayanlar, JavaScript kullanarak bir dosyayı başvuru veya eklemek için en iyi yoldur.

4 Cevap

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.