2010-08-04 10 views
6

Después de establecer la ubicación de un control en algún sitio. ¿Cómo podría echarle un vistazo al HTML asociado? Noté que tan pronto como configuro Location, htmlText pasa a ser nulo y viceversa ... Entonces, ¿cómo se puede ver el HTML que se muestra en el control en forma de TEXTO?Equivalente a "Ver origen" para <mx:HTML> Componente

Respuesta

5

Seguro que no lo hacen fácil, pero el truco es usar el DOM.

Mi control HTML se llama 'html'

<mx:HTML id="html" location="http://www.googolflex.com" 
     width="100%" height="100%" /> 

El DOM está contenida dentro de HTMLLoader del componente HTML, que se llama convenientemente 'htmlLoader'.

var o : Object = html.htmlLoader.window.document.getElementsByTagName("html")[0]; 
trace(o.textContent); 
trace(o.innerText); 
trace(o.innerHTML); 

no soy un experto en JavaScript, pero que tienen esencialmente el DOM expone a usted a través de html.htmlLoader.window. Además de ser una forma no tan conveniente de ver la fuente, esto le permite realizar muchas tareas similares a JavaScript a través de ActionScript.

Este documento de ayuda me llevan a esta solución: Accessing DOM and JavaScript objects from ActionScript

+0

Esto funciona muy bien, devolví 'html.htmlLoader.window.document.getElementsByTagName (" html ") [0] .outerHTML' y recuperé todo el HTML de la página. Hay que tener en cuenta que HTMLLoader ajusta el código de entrada, por lo que no hay errores antes de mostrarlo. En general, funciona bien, pero a veces rompe las páginas. – Tox

3

siempre me olvido de cómo hacer esto, y he estado buscando en realidad sólo cómo hacerlo de nuevo. Encontrado este fragmento en un antiguo proyecto mío:

HTMLComponent.domWindow.document.documentElement.outerHTML 

aunque no estoy seguro si esto representa modificaciones realizadas por el javascript.

asegúrese de rastrear esto solo en un evento completo desde el componente HTML (a menos que sepa que la página ha terminado de cargarse).

Cuestiones relacionadas