SORU
8 AĞUSTOS 2010, Pazar


Kimlikleri ile DOM ağaç elemanları genel değişkenler olmak mı?

Basit HTMLElement sarıcı için bir fikir üzerine IE ve Chrome için aşağıdaki tökezledi çalışma:

DOM ağacında KİMLİĞİ ile belirli bir HTMLElement için, div değişken adı olarak KİMLİĞİNİ kullanarak geri almak mümkündür. Yani bir div gibi

<div id="example">some text</div>

IE8 ve Chrome yapabilirsiniz:

alert(example.innerHTML); //=> 'some text'

ya

alert(window['example'].innerHTML); //=> 'some text'

Bu demekDOM ağacındaki her öğeküresel ad değişken dönüştürülür? Ve ayrıca bu tarayıcılar getElementById yöntemi için bir replament olarak kullanabilirsiniz anlamına mı geliyor?

CEVAP
8 AĞUSTOS 2010, Pazar


Ne olacak bu ‘unsurlar’ document belirgin özellikleri nesne olarak eklenir. adlı Bu element isimleri document gerçek özellikleri ile çatışma için izin olarak çok kötü bir fikir.

YANİ durum daha kötü de window nesne özellikleri gibi unsurlar adında ekleyerek yaptı. Bu iki kat daha kötü olduğunu şimdi size önlemek için adlandırma öğeleri sonra herhangi bir üyenin ya da document window nesne (veya başka bir kütüphane kod projesi) belki kullan.

Ayrıca bu unsurların global gibi değişkenler olarak görülebilir anlamına gelir. Neyse ki bu durumda gerçek bir küresel var function tanımlamalar kodunuzu gölge, o yüzden hiç gerek yok bu kadar endişeleniyorsunuz hakkında adlandırma burada, ama eğer sen denemek için bir atama için bir global değişken ile çatışan adını ve seni unutmaya ilan var, alacaksın bir hata IE olarak çalışır atamak değeri için elemanın kendisi.

Genellikle var gibi unsurlar window görünür olmak adlı güvenmek ya da bütünsel olarak ihmal kabul kötü bir uygulamadır. Daha fazla document.getElementById, sadık yaygın olarak desteklenen ve daha az belirsiz. Eğer yazım hoşuna gitmedi mi yoksa daha kısa bir isim önemsiz kapsayıcı bir işlev yazabilirsiniz. Her iki şekilde de, hiçbir anlamı yok. kullanma kimliği-eleman arama önbellek, çünkü tarayıcılar genellikle optimize getElementById aramak için bir hızlı arama her neyse; tüm sorunları zaman öğeleri değiştirmek id veya eklenen/kaldırılan belge.

Opera kopyalanan YANİ, sonra Y geldi, ve şimdi de daha önce unstandardised uygulamaya koyarak adında elemanları document özellikleri, ve daha önce-YANİ-sadece uygulamaya koyarak onlara window being standardised tarafından HTML5, kimin yaklaşım, belge ve standardize her kötü uygulama verdirdiler bize tarayıcı yazarlar, yapma kısmını web sonsuza kadar. Yani Firefox 4 de bu destek olacak.

Ne ‘elements’ adlı? Herhangi bir şey id bir şey name kullanılan ‘tespit’ amaçlar: bu, formlar, resimler, çapa ve birkaç Diğerleri, ama diğer alakasız örnekleri name öznitelik, denetim gibi isimler form giriş alanları, parametre adları <param> veya meta veri türü <meta>. ‘Tanımlama’ names id lehine kaçınılmalıdır olanlardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • Palmundo Ec

    Palmundo Ec

    11 HAZİRAN 2009
  • ThePointblank

    ThePointblan

    18 Aralık 2006