una trabajo tag poner mostrar imágenes imprimir img imagenes imagen con codigo atributos abrir javascript firefox dom

javascript - trabajo - tag img html atributos



¿Cómo puedo convertir una cadena de HTML en un objeto DOM en una extensión de Firefox? (5)

Ajaxian en realidad tenía una publicación sobre cómo insertar / recuperar html de un iframe hoy. Probablemente puedas usar el js snippet que han publicado allí.

En cuanto al manejo del cierre de un navegador / pestaña, puede adjuntarlo al evento onbeforeunload ( http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx ) y hacer lo que necesite hacer .

Estoy descargando una página web (etiqueta sopa HTML) con XMLHttpRequest y quiero tomar el resultado y convertirlo en un objeto DOM que luego puedo ejecutar consultas XPATH. ¿Cómo convierto una cadena en un objeto DOM?

Parece que la solución general es crear un iframe oculto y arrojar el contenido de la cadena en eso. Se ha hablado de actualizar DOMParser para que sea compatible con text / html pero a partir de Firefox 3.0.1 aún se obtiene un NS_ERROR_NOT_IMPLEMENTED si lo intentas.

¿Hay alguna opción además de usar el truco oculto iframe? Y si no, ¿cuál es la mejor manera de hacer el truco del iframe para que su código funcione fuera del contexto de las pestañas actualmente abiertas (para que las pestañas de cierre no dañen el código, etc.)?

Este es un ejemplo de por qué estoy buscando una solución que no sea el pirateo iframe, si tengo que escribir todo ese código para tener una solución robusta, entonces prefiero seguir buscando otra cosa.


Entonces, ¿desea descargar una página web como un objeto XML utilizando JavaScript, pero no desea usar una página web? Como no tiene control sobre lo que hará el usuario (cerrando pestañas o ventanas o lo que sea), tendrá que hacer esto como un widget de panel de OSX o alguna aplicación por separado. Una extensión de Firefox también funcionaría, a menos que tengas que preocuparte de que el usuario cierre el navegador.


Intenta crear un div

document.createElement( ''div'' );

Y luego establezca la etiqueta sopa HTML en el innerHTML de div. El navegador debe procesar eso en XML, que luego puede analizar.

La propiedad innerHTML toma una cadena que especifica una combinación válida de texto y elementos. Cuando se establece la propiedad innerHTML, la cadena dada reemplaza completamente el contenido existente del objeto. Si la cadena contiene etiquetas HTML, la cadena se analiza y formatea a medida que se coloca en el documento.


Prueba esto:

var request = new XMLHttpRequest(); request.overrideMimeType( ''text/xml'' ); request.onreadystatechange = process; request.open ( ''GET'', url ); request.send( null ); function process() { if ( request.readyState == 4 && request.status == 200 ) { var xml = request.responseXML; } }

Observe el overrideMimeType y responseXML .
ReadyState == 4 es ''completado''.


¿Hay alguna opción además de usar el truco oculto iframe?

Desafortunadamente, no, no ahora. De lo contrario, el código de microalumna que señale lo usaría en su lugar.

Y si no, ¿cuál es la mejor manera de hacer el truco del iframe para que su código funcione fuera del contexto de las pestañas actualmente abiertas (para que las pestañas de cierre no dañen el código, etc.)?

El código que citó utiliza la ventana del navegador reciente, por lo que al cerrar las pestañas no se afectará el análisis. Cerrar esa ventana del navegador abortará su carga, pero puede manejarla (detectar que la carga se interrumpe y reiniciarla en otra ventana, por ejemplo) y no ocurre muy a menudo.

Necesita una ventana DOM para que el iframe funcione correctamente, por lo que no hay una solución limpia en este momento (si está interesado en usar el analizador Mozilla).