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!