【发布时间】:2017-03-29 21:12:04
【问题描述】:
我在使用 delphi 和 javascript 按下按钮时遇到了困难。我的问题与其他人的不同,因为其他人的问题是关于如何按下图像,并且它们与这篇文章的标题相同。另一个是关于铬的。我的问题是如何在我用 delphi 制作的网络浏览器中按下按钮,代码如下:
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
{$WARNINGS ON}
unit FmDemo;
interface
uses
SHDocVw, Controls, StdCtrls, Classes, OleCtrls, Forms;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
ComboBox1: TComboBox;
procedure FormShow(Sender: TObject);
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure ComboBox1Change(Sender: TObject);
end;
var
Form1: TForm1;
implementation
uses
SysUtils, Dialogs, MSHTML;
{$R *.dfm}
procedure TForm1.ComboBox1Change(Sender: TObject);
{ Make browser use selected font }
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 := WebBrowser1.Document as IHTMLDocument2;
if not Assigned(Doc) then
Exit;
// Get parent window of current document
HTMLWindow := Doc.parentWindow;
if not Assigned(HTMLWindow) then
Exit;
// Run JavaScript
try
JSFn := 'myFunction(''' + ComboBox1.Text + ''')';
HTMLWindow.execScript(JSFn, 'JavaScript');
except
// handle exception in case JavaScript fails to run
ShowMessage('Error running JavaScript');
end;
end;
procedure TForm1.FormShow(Sender: TObject);
{ Setup combo box and load document }
begin
// Store screen fonts in combo box and disabled it
ComboBox1.Items.Assign(Screen.Fonts);
ComboBox1.Enabled := False;
// Load the HTML page
WebBrowser1.Navigate('C:\Users\Androide\Desktop\article-21-demo\CaseStudy\Test.html');
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
{ Document loaded: enable combo box }
begin
ComboBox1.Enabled := True;
end;
end.
我的html:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to trigger a function that will output "Hello World" in a p element with id="demo".</p>
<button onclick="myFunction()">Click me</button>
<p id="demo"></p>
<script>
function myFunction() {
document.getElementById("demo").innerHTML = "Hello World";
}
</script>
</body>
</html>
当我加载页面时,永远不要按下按钮。我的目标是当我加载页面时,因为我的浏览器按下了这个按钮,例如(当我加载页面时从不按下按钮=:
所以我必须手动按下..并告诉我你好世界以检查是否按下: hello word message when i press button
一些自动不按手动的方法。
参考:
http://delphidabbler.com/articles?article=21
【问题讨论】:
标签: delphi