O Not Element::innerText
özelliği olacak değil CSS stili "tarafından gizlendi metin içeren display:none
0, renk: şeffaf, ve de buna (font-size dahil diğer CSS teknikleri ile maskelenmiş olan içerikleri düşecek şekilde (Google Chrome'da" metnin görünür bir şekilde görüntülenmemesine neden olan birkaç benzer efekt).
Diğer CSS özellikleri de dikkate alınır:
- İlk olarak, iç öğelerin "display:" stili, tarayıcının yerleşik stil sayfasındaki HTML blok öğelerinin varsayılanı olan ve davranışını geçersiz kılmayan bir blok içeriğini ("display: block" gibi) sınırlayıp sınırlamadığını belirlemek için ayrıştırılır. kendi CSS stiliniz); eğer öyleyse innerText özelliğinin değerine bir yeni satır eklenir. Bu textContent özelliğinde gerçekleşmez.
- Satır içi içerikler üreten CSS özellikleri de dikkate alınacaktır: örneğin satır
<br \>
içi bir satırsonu oluşturan satır içi eleman , innerText değerinde bir satırsonu oluşturur.
- "Display: satır içi" stili, textContent veya innerText öğelerinde yeni satıra neden olmaz.
- "Display: table" stili, tablonun etrafında ve tablo satırları arasında yeni satırlar oluşturur, ancak "display: table-cell" bir tablolama karakteri oluşturur.
- "Position: absolute" özelliği (display: block veya display: inline ile birlikte kullanılır, önemli değil) de satır kesmesinin eklenmesine neden olur.
- Bazı tarayıcılarda açıklıklar arasında tek bir boşluk ayrılması da bulunur
Ancak Element::textContent
yine de, görünmez olsalar bile, uygulanan CSS'den bağımsız olarak iç metin öğelerinin TÜM içeriğini içerir. Ve textContent'te fazladan yeni satırlar veya boşluklar oluşturulmaz; bu, tüm stilleri ve yapıyı ve satır içi / blok veya konumlandırılmış iç eleman türlerini göz ardı eder.
Fare seçimini kullanarak bir kopyala / yapıştır işlemi, gizli metni panoya yerleştirilen düz metin biçiminde atar, bu nedenle içindeki her şeyi içermez textContent
, ancak yalnızca içinde olanı içerir innerText
(beyaz boşluk / yeni satır oluşturulduktan sonra yukarıdaki gibi) .
Daha sonra her iki mülk de Google Chrome'da desteklenir, ancak içerikleri farklı olabilir. Daha eski tarayıcılar hala textContent'in içerdiği gibi innetText'te her şeye dahil edildi (ancak o zamanlar beyaz alanların / yeni satırların oluşturulmasıyla ilgili davranışları tutarsızdı).
jQuery, tarayıcılar arasındaki bu tutarsızlıkları, $ () sorgusu aracılığıyla döndürdüğü ayrıştırılmış öğelere eklenen ".text ()" yöntemini kullanarak çözecektir. Dahili olarak, yalnızca "düğüm" düzeyinde çalışarak HTML DOM'ye bakarak zorlukları çözer. Böylece daha çok standart textContent gibi görünen bir şey döndürür.
Uyarı, bu jQuery yönteminin <br />
, içeriğin alt öğelerinin (gibi ) neden olduğu ekranda görülebilecek fazladan boşluklar veya satır kesmeleri eklememesidir .
Erişilebilirlik için bazı komut dosyaları tasarlarsanız ve stil sayfanız, Braille okuyucuyla iletişim kurmak için kullanılan eklentiler gibi işitmeyen oluşturma için ayrıştırılırsa, bu araç, stilize olan açıklıklara eklenen belirli noktalama işaretlerini içermesi gerekiyorsa textContent'i kullanmalıdır. "display: none" ve genellikle sayfalara dahil edilir (örneğin üst yazılar / abonelikler için), aksi takdirde innerText Braille okuyucusunda çok kafa karıştırıcı olacaktır.
CSS hileleriyle gizlenen metinler artık bir HTML / CSS ayrıştırıcısı ve DOM özelliği kullanılarak büyük arama motorları tarafından (genellikle HTML sayfalarınızın CSS'sini ayrıştıracak ve arka plan üzerinde kontrast renkte olmayan metinleri de yok sayar) yok sayılır. "innerText" tıpkı modern görsel tarayıcılarda olduğu gibi (en azından bu görünmez içerik dizine eklenmeyecektir, bu nedenle gizli metin, içeriğinin kontrol edilmesi için bazı anahtar kelimelerin sayfaya eklenmesini zorlamak için bir hile olarak kullanılamaz); ancak bu gizli metin, sonuç sayfalarında (sayfa sonuçlara eklenecek dizinden hala kalifiye olmuşsa), ek stilleri ve komut dosyalarını şeritlemek için tam HTML yerine "textContent" özelliğini kullanarak görüntülenecektir.
Bu iki özellikten herhangi birine düz metin atarsanız, bu, kendisine uygulanan iç işaretlemenin ve stillerin üzerine yazar (yalnızca atanan öğe türünü, niteliklerini ve stillerini korur), böylece her iki özellik de aynı içeriği içerir . Bununla birlikte, bazı tarayıcılar artık innerText'e yazmayı onurlandırmayacak ve yalnızca textContent özelliğinin üzerine yazmanıza izin verecek (bu özelliklere yazarken HTML işaretlemesi ekleyemezsiniz, çünkü HTML özel karakterleri tam anlamıyla görünmek için sayısal karakter referansları kullanılarak düzgün bir şekilde kodlanır , veya innerHTML
öğesinin atanmasından sonra özelliği okuduysanız .innerText
textContent