Widzę te terminy używane zamiennie jako globalne środowisko dla DOM. Jaka jest różnica (jeśli istnieje) i kiedy powinienem z nich korzystać?
źródło
Widzę te terminy używane zamiennie jako globalne środowisko dla DOM. Jaka jest różnica (jeśli istnieje) i kiedy powinienem z nich korzystać?
Window
jest głównym katalogiem obiektowym JavaScript, czyli global object
w przeglądarce, może być również traktowany jako katalog główny modelu obiektowego dokumentu. Możesz uzyskać do niego dostęp jakowindow
window.screen
lub po prostu screen
jest małym obiektem informacyjnym o fizycznych wymiarach ekranu.
window.document
lub po prostu document
jest głównym obiektem potencjalnie widocznego (lub jeszcze lepiej: renderowanego) modelu obiektowego dokumentu / DOM.
Ponieważ window
jest to obiekt globalny, możesz odwoływać się do dowolnych jego właściwości za pomocą samej nazwy właściwości - więc nie musisz zapisywać window.
- zostanie to określone przez środowisko wykonawcze.
window
z rzutnią . Awindow
jest obiektem JavaScript dla karty przeglądarki lub<iframe>
(lub przestarzałym<frame>
). Wziernika jest prostokąt świadczonychdocument
widać na karcie lub ramki.Cóż, okno jest pierwszą rzeczą, która zostaje załadowana do przeglądarki. Ten obiekt okna ma większość właściwości, takich jak długość, wewnętrzna szerokość, wewnętrzna wysokość, nazwa, jeśli został zamknięty, jego rodzice i inne.
Co zatem z obiektem dokumentu? Obiektem dokumentu jest twój html, aspx, php lub inny dokument, który zostanie załadowany do przeglądarki. Dokument faktycznie ładuje się do obiektu okna i ma dostępne właściwości, takie jak tytuł, adres URL, plik cookie itp. Co to tak naprawdę oznacza? Oznacza to, że jeśli chcesz uzyskać dostęp do właściwości okna, jest to window.property, jeśli jest to dokument, to window.document.property, który jest również dostępny w skrócie jako document.property.
To wydaje się dość proste. Ale co się stanie po wprowadzeniu IFRAME?
źródło
W skrócie, bardziej szczegółowo poniżej,
window
to kontekst wykonania i obiekt globalny dla JavaScript tego kontekstudocument
zawiera DOM, zainicjowany przez parsowanie HTMLscreen
opisuje pełny ekran wyświetlacza fizycznegoZobacz W3C i odniesienia Mozilli, aby uzyskać szczegółowe informacje na temat tych obiektów. Najbardziej podstawową relacją między tymi trzema jest to, że każda karta przeglądarki ma swoją własną
window
, a takżewindow
mawindow.document
iwindow.screen
właściwości. Przeglądarka Tabwindow
jest kontekst globalny, więcdocument
iscreen
odnoszą się dowindow.document
awindow.screen
. Więcej szczegółów na temat tych trzech obiektów znajduje się poniżej, zgodnie z JavaScriptem Flanagana: Przewodnik definitywny .window
Każda karta przeglądarki ma własny obiekt najwyższego poziomu
window
. Każdy<iframe>
(i nieaktualny<frame>
) element ma również swój własnywindow
obiekt, zagnieżdżony w oknie nadrzędnym. Każde z tych okien otrzymuje własny osobny obiekt globalny.window.window
odnosi się zawszewindow
, alewindow.parent
iwindow.top
może odnosić się do zamykania okien, co daje dostęp do innych kontekstów wykonania. Opróczdocument
iscreen
opisanych poniżejwindow
właściwości obejmująsetTimeout()
isetInterval()
powiązanie procedur obsługi zdarzeń z zegaremlocation
podając bieżący adres URLhistory
metodamiback()
iforward()
historią zmienną kartynavigator
opisujący oprogramowanie przeglądarkidocument
Każdy
window
obiekt madocument
obiekt do renderowania. Obiekty te są częściowo mylone, ponieważ elementy HTML są dodawane do obiektu globalnego po przypisaniu unikalnego identyfikatora. Na przykład we fragmencie HTMLdo elementu akapitu można odwoływać się w dowolny z następujących sposobów:
window.holyCow
lubwindow["holyCow"]
document.getElementById("holyCow")
document.body.firstChild
document.body.children[0]
screen
window
Obiekt posiada takżescreen
obiekt z właściwościami opisującymi wyświetlacz fizycznej:właściwości ekranu
width
iheight
to pełny ekranwłaściwości ekranu
availWidth
iavailHeight
pomiń pasek narzędziCzęść ekranu wyświetlającego renderowany dokument jest rzutnia w JavaScript, który jest potencjalnie mylące, ponieważ nazywamy część danej aplikacji na ekranie okno, gdy mówimy o interakcji z systemem operacyjnym.
getBoundingClientRect()
Sposób według dowolnegodocument
elementu powróci obiekt otop
,left
,bottom
, iright
właściwości opisujące położenie elementu w widoku.źródło
window.onload
korzystania z obiektu dokumentu?Jest
window
to rzeczywisty obiekt globalny.Jest
screen
to ekran, zawiera właściwości dotyczące wyświetlania użytkownika.Tam
document
jest DOM.źródło
document
może również byćwindow.document
,screen
może byćwindow.screen
iwindow
może byćwindow.window
(lubwindow.window.window
) :-Pwindow
jest zmienną globalną, co czyni ją własnościąwindow
obiektu globalnego . :-)window
zawiera wszystko, więc można zadzwonićwindow.screen
iwindow.document
uzyskać te elementy. Sprawdź to skrzypce, ładnie drukując zawartość każdego obiektu: http://jsfiddle.net/JKirchartz/82rZu/Możesz również zobaczyć zawartość obiektu w narzędziach firebug / dev, takich jak:
window
jest źródłem wszystkiego,screen
ma tylko wymiary ekranu idocument
jest najwyższym obiektem DOM. więc możesz myśleć o tymwindow
jak o superdocument
...źródło
Okno jest pierwszą rzeczą, która zostaje załadowana do przeglądarki. Ten obiekt okna ma większość właściwości, takich jak długość, wewnętrzna szerokość, wewnętrzna wysokość, nazwa, jeśli został zamknięty, jego rodzice i inne.
Obiektem dokumentu jest twój html, aspx, php lub inny dokument, który zostanie załadowany do przeglądarki. Dokument faktycznie ładuje się do obiektu okna i ma dostępne właściwości, takie jak tytuł, adres URL, plik cookie itp. Co to tak naprawdę oznacza? Oznacza to, że jeśli chcesz uzyskać dostęp do właściwości okna, jest to window.property, jeśli jest to dokument, to window.document.property, który jest również dostępny w skrócie jako document.property.
źródło