feb 102016
 

Buscando información para la librería GMLib sobre las novedades del TWebBrowser en Androis y iOS en las nuevas versiones de RAD Studio (acceso al HTML y ejecución de funciones JavaScript), me encontré la clase TWebBrowserEx que realiza todo lo que necesito.

Esta clase realizada por Jun HOSOKAWA es compatible con RAD Studio (desde la versión XE5 -con alguna pequeña corrección- hasta Seattle 10) y con Appmethod (desde la 1.14 a la 1.17).

La clase TWebBrowserEx hereda directamente de TWebBrowser (por lo que será compatible con cualquier aplicativo que se tenga hecho con éste componente) añadiendole ciertas funcionalidades interesantes:

  • procedure CallJS: esté método que hace una llamada a una función JavaScript (con o sin parámetros)
  • procedure EvaluateJavaScript: éste método ejecuta código JavaScript.
  • procedure LoadFromStrings: visualiza el código HTML pasado por parámetro en un string.
  • function GetTagValue: functión que devuleve el valor de cualquier tag HTML.

Si bien es cierto que en Seattle 10 tenemos el método EvaluateJavaScript del TWebBrowser, no es así en versiones anteriores y, además, no tenemos la opción de acceder a los elementos del HTML de forma estándar.

Aquí os dejo algunos trozos de código para hacer funcionar esta clase (no costaría demasiado hacerlo componente):

  // creation of object
  FWebBrowser := TWebBrowserEx.Create(Self);
  FWebBrowser.Parent := Panel2;
  FWebBrowser.Align := TAlignLayout.Client;

  // load an url
  FWebBrowser.URL := 'http://www.cadetill.com/un-repaso-a-lo-nuevo-de-delphi-10-seattle/';

  // put a html code directly
  FWebBrowser.LoadFromStrings('Hello WebBrowser!', '');

  // execute a JavaScript code
  FWebBrowser.EvaluateJavaScript('alert("EvaluateJavaScript method from WebBrowserEx class!")');

  // getting a value from id
  lat := FWebBrowser.GetTagValue('lat', 'value');
  lng := FWebBrowser.GetTagValue('lat', 'value');
  ShowMessage(Format('lat/lng clicked: %s/%s', [lat, lng]));

  // execute a JavaScript function into HTML code
  FWebBrowser.CallJS('MapSetCenter', ['42.51968735985934', '42.51968735985934']);

Además, TWebBrowserEx es de código abierto y está alojada en github.

Puedes descargarte la demo desde este enlace.

Hasta la próxima.

  5 Responses to “TWebBrowserEx Class”

  1. Hello,

    Tdcef3 is now compatible with both VCL and FMX libraries.
    Is it a great amout of work to update your library and use Tdcef3 ?

  2. Hello,
    FWebBrowser.GetTagValue is not work in android platform.
    what to do?

  3. How can I enable javascript in TWebView (WebView) for Delphi Berlin

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.