2010-03-20 1 views
11

Jak korzystać z outerHTML w JavaScript? DziękiJak korzystać z outerHTML w JavaScript?

+1

Możesz to sprawdzić: http://stackoverflow.com/questions/2474605/how-to-convert-a-htmlelement-to-a-string –

+0

Możliwy duplikat [Jak przekonwertować HTMLElement na ciąg znaków ] (https://stackoverflow.com/questions/2474605/how-to-convert-a-htmlelement-to-a-string) – Graham

Odpowiedz

10

ExternalHTML jest kodem HTML elementu zawierającego sam element. Porównaj to z innerHTML elementu, który jest HTMLem zawartym w znacznikach otwierających i zamykających elementy. Z definicji elementy bez tagów otwierających i zamykających nie mają wewnętrznego HTML.

Użyj outerHTML, aby całkowicie zastąpić element i jego zawartość. Użyj innerHTML, gdy chcesz tylko zastąpić zawartość elementu.

7

outerHTML to niestandardowa właściwość elementu programu Internet Explorer. Zwraca on html elementu i jego elementów potomnych. W niektórych przypadkach można go ustawić tak, aby całkowicie zastąpił element łańcuchem html.

+6

Rok później Chrome i Safari również wydają się implementować tę funkcję. Jednak w czasie pisania tego Firefox go nie obsługuje. –

+10

Obsługa [zewnętrznegoHTML] (https://developer.mozilla.org/en/DOM/element.outerHTML) została dodana w [Firefox 11] (https://developer.mozilla.org/en/Firefox_11_for_developers). –

11
function getHTML(node){ 
    if(!node || !node.tagName) return ''; 
    if(node.outerHTML) return node.outerHTML; 

    // polyfill: 
    var wrapper = document.createElement('div'); 
    wrapper.appendChild(node.cloneNode(true)); 
    return wrapper.innerHTML; 
} 
+0

Interesujący pomysł. Jednak ponieważ większość przeglądarek, które nie obsługują zewnętrznego protokołu HTTML, obsługuje prototypowanie w HTMLElement, zastanawiam się, czy łatwiej byłoby go zaimplementować pseudo-natywnie? – scunliffe