Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebBrowser javascriptaufruf funktioniert nicht richtig.. (https://www.delphipraxis.net/132531-twebbrowser-javascriptaufruf-funktioniert-nicht-richtig.html)

simlei 14. Apr 2009 22:30


TWebBrowser javascriptaufruf funktioniert nicht richtig..
 
Hallo,
Ich habe ein sehr merkwürdiges Problem... ich habe einen TWebBrowser, welcher auf eine URL navigiert wird, und dort einige Zeilen Javascript ausführen soll... Mein Anlauf hierzu:
Delphi-Quellcode:
procedure script(S: string);
  { Calls JavaScript Foo() function }
var
  Doc: IHTMLDocument2;     // current HTML document
  HTMLWindow: IHTMLWindow2; // parent window of current HTML document
  JSFn: string;            // stores JavaScipt function call
begin
  // Get reference to current document
  Doc := Form1.WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  // Get parent window of current document
  HTMLWindow := Doc.parentWindow;
  if not Assigned(HTMLWindow) then begin
    Exit; ShowMessage('not assigned'); end;
  // Run JavaScript
  try
    JSFn := S; // build function call
    HTMLWindow.execScript(JSFn, 'JavaScript'); // execute function
  except
    // handle exception in case JavaScript fails to run
  end;
end;
Es funktioniert ohne weiteres, z. B. eine alert() textbox aufzurufen. Was nicht funktioniert, ist, auf andere Funktionen, wie auf alle document-Eigenschaften (z.B. document.getElementbyID("abc");) oder auch ganz einfach colorBG u.ä. zuzugreifen. Jedesmal meldet der TWebBrowser (a.k.a. IE) "Das Objekt unterstützt diese Eigenschaft oder Methode nicht."
ich habe es auch mit "window.document.[...]" versucht - dasselbe.... Was mir ebenfalls aufgefallen ist: Wenn ich im IE in die adresszeile "Javascript: alert(document.getElementByID("q").value);" eingebe, kommt dasselbe Ergebnis. Führe ich Javascript jedoch "normal" aus, d. h. aus eienr HTML-Seite heraus, so funktioniert es -__-

Ich habe absolut keine Idee mehr. Ihr vielleicht? Danke schonmal!

omata 14. Apr 2009 23:59

Re: TWebBrowser javascriptaufruf funktioniert nicht richtig.
 
Existiert denn das HTML-Objekt mit der ID "q"? Vermutlich nicht! und NIL kann man nicht referenzieren.

simlei 15. Apr 2009 06:11

Re: TWebBrowser javascriptaufruf funktioniert nicht richtig.
 
Doch, es existiert, ich habe es mit der Seite www.heise.de versucht (Das Suchfeld hat die ID "q")

simlei 15. Apr 2009 14:15

Re: TWebBrowser javascriptaufruf funktioniert nicht richtig.
 
Schande über mich........
Ich hatte JS als nicht-casesensitive in Erinnerung -.- Und das, obwohl ich gerade an nem großen RCP-Javaprojekt dran bin -.-


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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