2011-08-14 17 views
10

Dinamik olarak eklenen bir JavaScript dosyasını adlandırmak mümkün mü?Ad alanı dinamik olarak yüklenmiş bir javascript dosyasının içeriği

Bir JavaScript dosyasını bir script etiketi oluşturarak ve DOM'a ekleyerek dinamik olarak ekleyebileceğimi biliyorum, ancak bu dosyaya isim eklenebilir mi? Dosya, bar adı verilen bir işleve sahipse, bir ad alanı üzerinden foo: yani foo.bar() numarasına erişmek istiyorum.

cevap

0

Dosyayı değiştirmeden, dinamik olarak yüklerken, o dosyada tanımlanan her şeye bir ad alanı eklemek istediğinizde, yanıt hayır olur.

6

Evet, CommonJS Modules/1.1 bunu yapmanın yalnızca bir yolunu belirtir.

Sadece sunucu tarafında Node.js ile kullandım, ancak CommonJS uyumlu tarayıcıyla çalışmak için oluşturulmuş başka kitaplıklar olduğunu düşünüyorum. Sunucu/tarayıcı için çoklu modül özellikleri olduğundan emin olun (buna henüz girmediniz).

module.exports.bar = Bar; 

function Bar() { 
// code 
} 

Ve kullanımını:

Modüller sadece javascript başka parçası gibi yazılır, sadece bir ek sen ortaya çıkarmak istediğini ihraç edilmektedir aslında ne yapılmış

var foo = require('mymodule'); 

foo.bar(); 

Arka plan, tüm kod başka bir işleve sarılır ve ihracat özellikleridir.

Ayrıca, Michael Bolin talked about similar problem in his talk about 'with' keyword at JSConf. Eğitici video için

+0

+1; yeni şeyler öğrenmek için çok mutluyum :) –

+1

CurlJS, gerektirirJS desteği, tarayıcıdaki kutuda benzer ve çalışabilen AMD modülleri. Browserify gibi araçlar Modüller/1.1 paketlerini oluşturmanıza izin verir. – Raynos

+1

Hala bununla oynamıyorum. Bir soru olsa da, her js dosyası 'need' için onları almak için özellikleri vermek gerekiyor mu? Bu durumda, üçüncü taraf js dosyasını eklerken ad boşluğuna nasıl ulaşırım? –