rad*_*ick 7 javascript browser delphi
我正在编写一个小应用程序,在中间我打了一些点我必须执行javascript来获取我的数据?
在我的过程中,我必须登录到一些网址,然后转到某个页面,必须从中获取数据.我用indy idhttp做了所有这些,除了一个需要javascript才能获得价值的专栏以外我得到了所有信息,然后我尝试使用twebbowser让它适合我,但我怎样才能使用cookies启用webbrowser?
我导航了browserto(' http://mysite.com/login.php用户并通过'),好了它的插入然后我试图访问下一个链接(' http://mysite.com/link1/example.php ')但它指向登录页面:(
任何帮助赞赏:)
你现在的问题是什么?在标题中,您将询问如何执行JavaScript.请尝试以下方法:
uses
MSHTML_TLB, SHDocVw, ShellAPI;
function ExecuteScript(doc: IHTMLDocument2; script: string; language: string): Boolean;
var
win: IHTMLWindow2;
Olelanguage: Olevariant;
begin
if doc <> nil then
begin
try
win := doc.parentWindow;
if win <> nil then
begin
try
Olelanguage := language;
win.ExecScript(script, Olelanguage);
finally
win := nil;
end;
end;
finally
doc := nil;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
样品用法:
IDoc: IHTMLDocument2;
Webbrowser1.Document.QueryInterface(IHTMLDocument2, iDoc);
ExecuteScript(iDoc, 'document.login.submit()', 'JavaScript');
Run Code Online (Sandbox Code Playgroud)
(这个,以及更多,可以在这里找到).
然后在文中你问如何使用cookie(当使用TWebBrowser时,这应该自动发生).当使用Indy HTTP时,您只需将a附加TIdCookieManager到您的TIdHTTPClient实例,就是所有(但由于脚本要求,您可能不想再使用它).
最好的选择是让 IE 本身自动化。获取一份embeddedwb的副本,放在表单上并导航到您需要执行某些操作的URL。组件有一个返回 OLEVariant 的文档属性,用它来执行 DHTML 样式语句.. 之类的东西document.form.submit;。
您可以轻松隐藏用于自动化的窗口,我使用的一种技术是将其放置在页面控件的新页面上,添加第二个页面来显示状态,然后显示状态页面并隐藏选项卡。
| 归档时间: |
|
| 查看次数: |
10668 次 |
| 最近记录: |