Sayfa yükleri olarak DOM öğelerini işleme

Başlığa bir parça düz JavaScript yerleştirmenin bir yolunu arıyorum ve her bir etiket veya öğe yüklendiğinde, belirli bir ad, kimlik veya sınıf için test yapabilmesi için sayfa yükünü kanca yapmasını istiyorum. ve gereksinimleri karşılarsa, o zaman bazı manipülasyonlar gerçekleştirin. Alternatif olarak, DOM her yeni indirilen sayfa yığınıyla güncellendikten sonra ateşlenmesini sağlayın. Bu arada, sayfa elbette yüklenmeye devam ederdi, ancak herhangi bir uyarı ve sorun bulmak için hata ayıklamayı yapmaya hazırım.

Tarayıcı benim için filtreleme yapıyorsa, harika, aksi takdirde eleman türünü ve adını her defasında test etmem gerekecek ve bunun en kötü durumda sayfa oluşumunu yavaşlatacağını anlıyorum. Öncelikle Firefox'la ilgiliyim, çünkü Greasemonkey betikleri oluşturmak istiyorum, ancak çapraz platform harika olurdu.

Bunun nedeni, son sayfaya kadar yanlış bir tarzda bir sayfa yüklemekten sakınmak, sonra yeni stile atlamak. DOM tamamlanana kadar kullanılamayacak pek çok başka site de, javascript'in erken döneminden yararlanabilir.

0
Bu sadece eski sürümlerde geçerlidir, artık baş elemanı yüklendiği anda yürütmenin başlamasını sağlayan bir ifade vardır.
katma yazar SilverbackNet, kaynak
GM, DOM yüklendikten sonra çalışmaya başlar. Yani mümkün olmadığını söylüyorum, GM'in yaptığı her şey *, ne yüke gitmeden önce değil. Bu, kullanıcı bağlantısına, tarayıcı yapılandırmasına ve sayfanın ne kadar ağır olduğuna bağlıdır. Yani, değiştirdiğiniz sayfa çok ağır değilse ve değişiklik de ağırsa, genellikle fark edilmez.
katma yazar Griphox, kaynak

2 cevap

With Greasemonkey and Firefox, you cannot catch some of the first elements, and you can't do anything to stop an element, EG

, from loading or parsing (without stopping the whole page load).

Yapabileceğiniz en iyi şey, yüklenen bir sonraki öğeyi hemen siler veya daha sonraki kodla etkilerini geçersiz kılar.

Bu tür bir yaklaşım hakkında bir fikir edinebilirsiniz (çoğunlukla) DOM öğelerini geldikçe yakalayabilir - bu cevap .

Ancak, "bir sayfanın sonuna kadar yanlış stil içeren bir sayfa yüklemeye devam etmesini, sonra yeni stile atlamasını sağlar" , daha basit ve titreşimsiz bir yöntem kullanmak şık eklenti . Şık, Greasemonkey'den daha hızlı ve kolay ve bir sayfayı yüklendiği anda pratik olarak etkiler. Şık bir komut dosyasının ! Önemli anahtar kelimesini kullanmak için kabul edilebilir bir yer olduğunu unutmayın.

Son olarak, harici olarak yüklenen stiller ve komut dosyaları için bunları Fiddler yardımcı programıyla kolayca değiştirebilirsiniz.

0
katma

DOMNodeInserted etkinliğine katılmanız gerekecek. Bu olay baloncukları, etkinliği belge düzeyinde kaydederek tüm belgeyi izlemenizi sağlar.

Bu yalnızca modern tarayıcılarda destekleneceğinden, yeni DOM öğelerini düzenli olarak kontrol etmek için aralıklı bir zamanlayıcı çalıştırmanız gerekebilir. Buradaki kodunuzun çok verimsiz olduğuna dikkat etmelisiniz. En son kontrol ettiğinizde, 15 elemandan sonra, sadece 16ncı öğeden sonra kontrol etmeniz gerektiğini düşünebilirsiniz (bir document.getElementsByTagName ('*') aramasında veya bir şeyde).

0
katma