Ver Mensaje Individual
  #1  
Antiguo 02-07-2015
(MAJ) (MAJ) is offline
Miembro
 
Registrado: abr 2007
Posts: 71
Reputación: 17
(MAJ) Va por buen camino
Lightbulb geteEementBy... Id, ClassName, TagName en delphi

Buenas muchachos, les dejo este truco para poder extraer fácilmente datos o elementos mediante getElementBy... al igual que lo haría javascript

ej:

Código Delphi [-]
procedure myprocedure; var
elemento:ihtmlelement; colelemento: ihtmlelementcollection
begin
elemento:= Webbrowser1.OleObject.document.getelementbyid('elemento') as ihtmlelement; //se lo convierte a ihtmlelement para que sea compatible //o sino colelemento:= Webbrowser1.OleObject.document.getelementsbyclassname('elemento') as ihtmlelementcollection; //o tambien colelemento:= Webbrowser1.OleObject.document.getelementsbytagname('elemento') as ihtmlellementcollection;
end;
Hay que tener en cuenta que "byclassname" y "bytagname" devuelve una colección de elementos, asi que hay que almacenarlos en un ihtmlelementcollection.
Cuando uno entra a "OleObject" en el webbrowser se puede extraer toda clase de datos y objetos al igual que lo hace javascript(por lo menos lo que voy probando), y hay que estar conciente de que tipo de elemento devuelve ya que si al elemento queremos extraer solamente un atributo por ej:href

Código Delphi [-]
elemento := Webbrowser1.OleObject.document.getelementbyid('elemento').href;
daria error porque estamos tratando de depositar un string en un ihtmlelement.
y tendriamos que declarar un string. Si por alguna razon no queremos extraer datos sino que queremos simular un click o mouseover o mouseout... etc, entonces tenemos que almacenar el elemento en un oleobject

Código Delphi [-]
procedure webmouseover; var
ole:OleObject;
begin
ole := Webbrowser1.OleObject.document.getelementbyid('elemento');//no hace falta convertirlo ya que son compatible ambos ole.mouseover;
end;
ese código simula mouseover sobre el elemento seleccionado.

Bueno espero les resulte útil, saludos para todos

P/D: el codigo no es "case sensitive" como javascript asi que no hay problema con escribir todo en minusculas

P/D: actualicen la lista de trucos en la pagina principal, porque el ultimo truco que aparece es del 2012
Responder Con Cita