2009-11-03 13 views
6

Bu kodu bir example kopyaladım. 100 kere okudum. Javascript Döngü için iyi oluşturulmamış hata

Array.prototype.map = function(fn) { 
    var r = []; 
    var l = this.length; 
    for(var i = 0; i < l; i++) { 
     r.push(fn(this[i])); 
    } 
    return r; 
}; 

Neden Firefox diyor:

not well-formed 
file:///some/path.html       Line: 5 
    for(var i = 0; i < l; i++) { 
    -------------------^ 

GÜNCELLEME Kundakçı sayfası için açıldığında

hata, yalnızca gösterilir.

+2

İşleri ince - http://jsbin.com/ifuhu/edit –

+2

Senin sorunun çözüldü ama gölge hangi (kendi ilan etmeden önce bir yerli 'map' uygulaması olup olmadığını kontrol etmek için teşvik edeceğini eğer mevcutsa yerel olanı), moderns tarayıcıları tarafından sağlanan yerel uygulamalar * gerçekten * çok daha hızlıdır. – CMS

cevap

9

Tam XHTML uyumlu olduğunu iddia eden bir HTML sayfasındaki Javascript kodunu kullanıyorsunuz. Bu nedenle, bir XHTML etiketinin başlangıcı olarak yorumlanacağı için, < karakteri Javascript'te görünemez.

Bunu düzeltmenin bir çok yolu vardır.

DOCTYPE'u değiştirebilir ve XHTML yapamazsınız.
Javascript'i <![CDATA[ bölümünde kapatabilirsiniz.
Javascript'i ayrı bir .js dosyasına taşıyabilirsiniz.
<'un her oluşumundan &lt ve numaralı her &amp; ile kaçabilirsiniz. Bu seçeneği önermiyorum; Kodunuzu okunamaz hale getirecek ve neredeyse kesinlikle IE'de çalışmaz.

+1

Harika. Teşekkürler. –

+0

DOCTYPE'i de denedim sanıyordum ama sanırım değil. –

1

Muhtemelen hata kodunuz bu kodda değil, ancak üstündeki bir şey hataları aşağıya çekiyor. Bu nedenle, bu kodda bir hata bulmak yerine, bunun yerine bu hataya neden olabilecek hatalı biçimlendirilmiş HTML veya javascript için yukarıya bakın.

+0

HTML veya başka Javascript yok. –

0

Benim için çalışıyor. Lütfen tam dosyayı gönderin ve komut dosyası etiketlerini kullandığınızdan emin olun.

validating pastebin file (Chetan's teknik olarak geçerli değil) yayınladım ve Firebug ile iyi çalışıyor. Bu yüzden, çalışmayan tam bir doğrulama kodu sayfasıyla geri dönmenizi öneririm.

+0

Bu html ve komut dosyası etiketlerinin çeşitli kombinasyonları dışında, tam dosya IS. Sadece bir komut dosyası etiketiyle denedim. Bir dokümanı olan ve olmayan, yalnızca bir komut dosyası etiketi içeren tam bir HTML sayfasıyla denedim. –

0

Aşağıdaki HTML'yi ve metninizi "test.js" olarak kullanırsam, Firebug'da da hata yapıyorum.

<html> 
<head> 
    <script type="text/javascript" src="test.js"></script> 
</head> 
<body> 
    test 
</body> 
</html>