2013-03-21 237 views
7

Tarayıcı uzantısında çalışıyorum (bkz. SEOQuake) - Gösterilen arama sonuçlarıyla ilgili bazı verileri görüntülemem gerekiyor.Google Instant sayfasının tamamen yüklendiği nasıl tespit edilir?

Sorun: Google Anında Arama sonuç sayfasında, henüz yükleme aşamasındayken herhangi bir şey eklenirse, herhangi bir eklemenin üzerine yazılır. Kendimi gerçekten çok kötü bir setInterval iş yazarken yakaladım (ol#rso içeriğinin boyutunu değiştirmeyi bekle, böyle şeyler gibi), bu yüzden sayfanın yüklenip yüklenmediğini güvenilir şekilde nasıl belirleyeceğimi bilmiyorum anlamına gelir.

I sadece 1-2 saniye bekleyebilir, ancak sonuçların yüklendiği anda verileri almak için çok fazla zaman kazanmak istiyorum.

Düzenleme: Unutmayın, IE8'i desteklemediğimi, çünkü IE8 bunu desteklemiyor.

+0

Henüz iyi bir tarayıcı çözümü bulunmadığından emin değilim. Yeni [Mutation Observers] (http://updates.html5rocks.com/2012/02/Detect-DOM-changes-with-Mutation-Observers) ve hatta [Mutation Summary] (https://code.google) .com/p/mutation-summary /) kütüphanesi yardımcı olmak için, ama IE sevgisi yok. [CSS3 animasyon olaylarını] kullanan başka bir ilginç yaklaşım (http://www.backalleycoder.com/2012/08/06/css-selector-listeners/), ancak IE sevgisi yoktur: -p IE için bir setInterval hackine ne dersiniz? ve diğer her şey için Mutasyon Özeti? – thirdender

+0

IE için [onpropertychange] (http://msdn.microsoft.com/en-us/library/ie/ms536956 (v = vs.85) .aspx) olayını kullanabilirsiniz. – thirdender

cevap

3

bu deneyin:

IE çalışmalıdır 8+ ve diğer tüm tarayıcılar
window.addEventListener("message", function(e) {if(e.data == 'jrc') console.log('loaded')}, false); 

: o IE 8'de çalışmazsa http://caniuse.com/#feat=x-doc-messaging

(benim Mac sağda yer test edemez şimdi), bana haber ver. Son bir saatte rs.js hakkında oldukça iyi bir anlayışa sahip olduğuma inanıyorum. ;)

+0

Gözden geçirenler tarafından reddedilen bir düzenleme olduğu için bir yanıt olması gerektiği önerildi, şu anda "e.data.type == 'sr'' – mrks

İlgili konular