Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   TWebBrowser y acciones 'raras' (https://www.clubdelphi.com/foros/showthread.php?t=83053)

gluglu 07-05-2013 11:47:06

TWebBrowser y acciones 'raras'
 
Hola :

Estoy intentando "engañar" a Outlook. Para ello intento incluir el siguiente código adicional a la hora de exportar un documento en HTML desde FastReport :

Código:

WriteExpLn('<!--[if gte mso 9]> ');
WriteExpLn('  <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:' + IntToStr(pWidth) + 'px; height:' + IntToStr(pHeight) + 'px;">');
WriteExpLn('    <v:fill type="frame" src="'+ s +'" color="#ffffff" />');
WriteExpLn('    <v:textbox inset="0,0,0,0">');
WriteExpLn('<![endif]-->');

Lo que pretendo (ya sé que todo el mundo lo desaconseja ....) es gestionar imágenes de fondo en los correos.

Para 'previsualizar' el correo electrónico antes de enviarlo, utilizo un TWebBrowser.

Lo 'extraño' y puñe... es que el TWebBrowser parece eliminar intencionadamente ese código.

A la hora de tomar el código HTML para guardarlo en la base de datos y después enviarlo (utilizo el WebBrowser además para que si el usuario lo quiere, pueda modificar el correo antes de enviarlo con la función edición del WebBrowse), lo cual hago de esta manera :

Código Delphi [-]
    iall := (WebBrowser1.Document as IHTMLDocument2).Body;
    While iall.parentElement <> nil do
      iall := iall.parentElement;

    Aux_Memo      := TMemo.Create(Self);
    Aux_Memo.Text := iall.outerHTML;

... pues lo que se puede observar es que el código adicional que mencionaba arriba, ha desaparecido simplemente del texto que obtengo !

Y lo que obtengo es (junto con algunas líneas anteriores y posteriores del código HTML) es :

Código:

<TBODY>
<TR>
<TD vAlign=top align=left>
<A name=PageN1></A>
<TABLE border=0 cellSpacing=0 cellPadding=0 width=799 align=center>

y lo que debería obtener es ( y lo que obtengo de hecho si analizo el HTML que exporta en sí mismo FastReport) :

Código:

<table background="Hotel - Correo.backgrnd.jpg" cellpadding="0" cellspacing="0" border="0" style="background-repeat: no-repeat;table-layout:fixed;">
<tbody>
<tr>
<td valign="top" align="left">
<!--[if gte mso 9]>
  <v:rect xmlns:v="urn:schemas-microsoft-com:vml" fill="true" stroke="false" style="width:799px; height:1784px;">
    <v:fill type="frame" src="Hotel - Correo.backgrnd.jpg" color="#ffffff" />
    <v:textbox inset="0,0,0,0">
<![endif]-->
<a name="PageN1"></a>
<table width="799" align="center" border="0" cellspacing="0" cellpadding="0">

A lo mejor alguien puede comentar algo acerca de este asunto.

Gracias por adelantado.

Saludos a todos ;)

Chris 07-05-2013 20:31:36

Lo que se me ocurre es que la condición "[if gte mso 9]" al ser ejecutada desde WebBrowser devuelva .False. Talvez por esa razón la propiedad outerHTML no devuelva el texto dentro de esa condicional. Prueba con la propiedad outerText.

Saludos!

gluglu 09-05-2013 11:43:13

Hola Chris :

Gracias por responder.

No me sirve la función outerTEXT ya que lo que quiero obtener es todo el texto completo, INCLUIDAS las etiquetas HTML de todo el correo, con cabecera, con todo lo demás. Y outerText sólo me devuelve en sí mismo el texto.

Saludos.


La franja horaria es GMT +2. Ahora son las 12:07:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi