2014-09-25 11 views
5

Olay temsilciliği yapmak ve bir belgedeki tüm olayları tüm belgeye bağlı bir olay işleyicisi tarafından yakalamak istiyorum.Olay temsilci ve pencere ile window.document

window.addEventListener(event, function(e){ 
    var obj = e.target; 
    ... // if `obj` is a certain kind of object, then do something 
}, false); 

ve aşağıdaki gibi window.document: deki gibi window olayları bağlama arasında herhangi bir fark var mı?

window.document.addEventListener(event, function(e){ 
    var obj = e.target; 
    ... // if `obj` is a certain kind of object, then do something 
}, false); 

event

window ve window.document arasında bir fark yoktur 'click', 'mouseover' gibi olay bir tür, vb

cevap

4

olduğunu. window, tarayıcının görüntülenebilir kısmı ile ilgilidir ve her zaman önce yüklenir. window.document, sayfanızın tüm içeriğinin ve DOM’ın görüntülendiği gövdedir ve şunları içerir: Onlara kayana kadar saklanan tüm parçalar onları ortaya çıkarır.

Listelediğiniz etkinlikler, kullanıcı tarafından tetiklenen etkinliklerdir ve her zaman pencerenin görüntülenebilir bağlantı noktasını etkiler. Örneğin alacağınız herhangi bir durumu düşünemiyorum. Görünüm bağlantı noktanızın dışında bir tıklama olayı. Bildiğim kadarıyla, belirli bir öğeye bağlı olmayan, ancak ekrandaki bir konuma bağlı olan bir olayı bile oluşturamazsınız. Aynı durum keyup, keydown, ... olayları için de geçerlidir.

Sorunuzu yanıtlamak için, etkinliklerinizi window veya window.document numaralı telefonlara bağlama arasında işlevsel bir fark yoktur. Farklı olan tek şey, işlev çağrıları içindeki this özelliğidir. Benim için window yerine bir olayı window.document DOM'a bağlamak biraz daha mantıklı.