![]() |
Javascript mit delphi möglich?
Hi, hab vor ein programm zu schreiben das eine internetseite mit dem webbrowser öffnet. Nun wollte ich es so machen dass wenn man ein button im programm anklickt, dass dann das java-script eines auf der homepage angelegten buttons startet. ist das möglich?
(bitte genauestens beschreiben ^^ bin neu bei dephi :stupid: ) mfg NightFox |
Re: Javascript mit delphi möglich?
Folgendes ist programiertechnisch über TWebBrowser möglich:
* einen Button auf der Webseite anklicken * Eingabefelder mit Text befüllen * Checkboxen an- oder abkreuzen * Comboboxen auswählen Nicht möglich ist z.B. ein Dateiupload durch Vorgabe eines Dateinamens. (aus Sicherheitsgründen) Hier kommt mal ein grosses Stück Code, das zeigt wie man Editboxen in Webseiten mit TEXT befüllt. Du musst aber schon selber etwas mitdenken und Forschungsarbeit betreiben.
Delphi-Quellcode:
function TFrmHTMLUpload.FillForm(WebBrowser: TWebBrowser; submit:Boolean) : Boolean;
var i,j:Integer; FormItem, Element : OleVariant; document : OleVariant; itemtype, itemname : string; r, maxlen, selcount, postcount : Integer; value2 : string; begin document := WebBrowser.OleObject.document; //no form on document If document.all.tags('FORM').length=0 then begin exit; end; postcount := 0; //count forms on document for I:=0 to document.forms.Length -1 do begin Result:=false; FormItem := document.forms.Item(I); For j:= 0 to FormItem.Length-1 do begin Element := FormItem.Item(j); itemname := Element.Name; itemtype := UpperCase(Element.Type); value2 := ''; if itemname='USERNAME' then value2 := 'administrator' else if itemname='PASSWORT' then value2 := 'geheim'; if value2 <> '' then begin if (itemtype = 'TEXT') then begin maxlen := Element.MaxLength; Element.Value:= Copy(value2, 1, maxlen); end else if (itemtype = 'RADIO') then begin Element.Checked := Copy(value2, 1, 1) = '*'; end else Element.value := value2; Inc(postcount); end; if (itemtype = 'SELECT-ONE') and (value2 = '') then begin // TODO: check options.count selcount := Element.options.Length; Element.value := Element.options.Item(system.Random(selcount)).value; end else if itemtype = 'CHECKBOX' then begin if system.Random > 0.5 then Element.Checked := True; end; end; if (not submit) and (postcount > 0) then Exit; if submit and (postcount > 0) then begin SubmitWebForm(FormItem); Exit; end; end; end; |
Re: Javascript mit delphi möglich?
Danke! und wie geht das mit den buttons? also der button greift nicht auf eine url zu sondern startet wie gesagt ein java script
mfg NightFox |
Re: Javascript mit delphi möglich?
Um einen Button zu drücken, musst du zuerst den Typ prüfen:
Delphi-Quellcode:
und dann den Button "anklicken":
if (itemtype='BUTTON') or (itemtype='SUBMIT') then
Delphi-Quellcode:
element.Click;
|
Re: Javascript mit delphi möglich?
Liste der Anhänge anzeigen (Anzahl: 1)
Glaub es ist besser wenn ich mein ziel erkläre :chat: also ich will auf meinen router zugreifen dort auf eine bestimme seite gehn (die im downloadanhang) un dort den 'reset adsl line' button anklicken.
momentan hab ich es folgendermassen gemacht: ich logge mich per webbrowser komponente im router ein, dann kommt die gewünschte seite. nun will ich aber die webbrowser komponente vermeiden ,da dies nicht schön aussieht, und will dass das script was beim ankicken des 'reset adsl line' buttons ausgeführt wird ausgeführt wird wenn ich zB den button1 in meinem programm anklick. @ shmia: was du mir da gespost hast geht in die richtige richtung (soweit ich das versteh) aber da muss man doch diese seite des routers irdengwie laden und wie ich das alles anstellen soll hab ich keinen plan. Vielleicht ist ja jemand so nett und schreibt das script für mich denn für einen erfahrenen scripter ist das glaub ich kein problem :wink: wie gesagt die htm datei wo sich der button befindet ist im anhang vielen dank! mfg NightFox |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz