2009-08-30 14 views
9

Dzisiaj natknąłem się na createDocumentFragment. Zastanawiam się, czy DocumementFragment jest obsługiwany, i jak, w różnych przeglądarkach, szczególnie w serii IE.Obsługa przeglądarki DocumentFragment

Ktoś wie coś na ten temat?

+1

http://stackoverflow.com/questions/1643349/is-there-any-way-to-find-an-element-in-a-documentfragment/1643383#1643383 Zobacz komentarz NickFitz użytkownika. Fragmenty traktowane są przez IE jako dokumenty. http://msdn.microsoft.com/en-us/library/ms536387%28VS.85%29.aspx – Olivvv

Odpowiedz

13

Tak, jest w pełni obsługiwany we wszystkich nowoczesnych przeglądarkach (w tym IE6).

Patrz: http://www.quirksmode.org/dom/w3c_core.html#miscellaneous

+1

Mimo że documentFragment jest obsługiwany przez wszystkie przeglądarki, metody przechodzenia DOM takie jak 'getElementsByTagName',' children' itp. nie działają na nich. –

4

W ogóle to zawsze działało w porządku, jak na specyfikacji DOM.

Nie oczekuj jednak, że niestandardowe rozszerzenia będą działały bezproblemowo ... na przykład nie możesz ustawić innerHTML na DocumentFragment (co jest wstydem, ponieważ może znacznie poprawić szybkość wstawiania na niektórych dużych stronach).

+1

ale możesz utworzyć uchwyt 'div' z' document.createElement' i dodać ciąg 'innerHTML' do' div', a następnie ostatecznie dołączyć 'div' do' documentFragment' –

+0

Tak, ale to nie daje przewaga wydajności nad operowaniem bezpośrednio na 'div'. Pomysł polegałby na przyspieszeniu operacji, takich jak dodawanie wielu wierszy do tabeli, które są zazwyczaj powolne w przypadku metod DOM typu węzeł po węźle. Możesz zrobić to bardzo dużo, łącząc fragmenty z obiektami 'Range', z tym wyjątkiem, że implementacje przeglądarki DOM Level 2 TR (szczególnie IE) nie są jeszcze w pełni dostępne. – bobince

4
  ╔═════════════════════════════════╗ 
     ║ document.createDocumentFragment ║ 
╔════════╬═════════════════════════════════╣ 
║ IE5 ║ true       ║ 
║ IEM5.2 ║ true       ║ 
║ IE5.5 ║ false       ║ 
║ IE6+ ║ true       ║ 
║ OPM6+ ║ true       ║ 
║ OP7+ ║ true       ║ 
║ N6+ ║ true       ║ 
║ KQ  ║ true       ║ 
╚════════╩═════════════════════════════════╝ 

Uważaj jednak, istnienie nie zawsze wymaga implementacji.

pułapek

  • IE 5.2 na Mac Mac nie można dodawać węzły tekstowe udokumentować fragmentów, ani dołączania zawartości fragment do dokumentu.
  • Opera 7.2 tworzy fragment, ale nie stosuje stylów do tworzonych elementów.
Powiązane problemy