网页例子:http://guba.eastmoney.com/gssz,guba.html
用代码在留言标题和留言框中填入内容,比如标题填“111”,内容填“222”,然后提交。
现在我用 mainfm.mainwb.OleObject.document.getElementById('topic').value:='111'
可以在留言标题中填入内容,但同样的方法对留言内容框不起作用。
不知道是不是因为网页中frame的原因??
请大家帮忙看看!!!csdn里我搜索了一遍,好像没有帖子能实现我想要的。
解决方案 »
- 我在主界面上点一个按钮时想在主界面某一个区域显示子界面
- 急急急 请大家帮我解释一段代码 谢谢...
- 请教:我怎么把 edit1 和 updown1 这两个控件联系起来呢?谢谢!
- 如何把现有的cur文件、mp3文件作为资源添加到res文件中?
- 存储过程的一个问题,请教大家,请进--------------------->>
- 菜鸟基础问题。。。在线等。。。尚未结贴。。。
- 有关dll和应用程序共用参数类型定义单元的问题
- 用delphi怎么修改注册表中某个键值的值呢???
- 如何从邮件退信中取出其附件中邮件,在从中取出附件进行发送?
- 关于录音软件的开发问题
- 怎么用Delphi检测隐藏进程
- 各位帮帮忙;我在treeview中遍历的是文件夹和文件,怎样做能在treeview的节点上右击遍历文件夹或文件弹出快捷菜单(菜单中的内容有新建一级节点,二级节点,三级节点,四级节点,删除节点(其中1,2,3级节点是文件,4级节是txt文档)。
这个IFRAME的ID是:oblog_Composition通过IFrame,可以这样访问: IFrameID.Document.GetElementByID('IFRAME里面的那个输入框的ID').Value := 'xxxxx...';js文件太多,懒得找.
uses mshtml;
procedure TMainForm.ToolButton56Click(Sender: TObject);
var
Index: Integer;
Document: IHTMLDocument2;
FrameIdx: OleVariant;
FrameDis: IDispatch;
FrameWin: IHTMLWindow2;
begin
while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
if WebBrowser1.Document = nil then Exit;
if WebBrowser1.Document.QueryInterface(IHTMLDocument2, Document) <> 0 then Exit;
if Document.frames.length > 0 then
begin
for Index := 0 to Document.frames.length - 1 do
begin
FrameIdx := Index;
FrameDis := Document.frames.item(FrameIdx);
if FrameDis.QueryInterface(IHTMLWindow2, FrameWin) <> 0 then Exit;
ShowMessage(FrameWin.document.body.outerHTML);
//FrameWin.document 就是你要的每个 Frame 的文档
end;
end;
end;
现在可以给文本框填入内容了
但现在又有了一个新问题,帖子发送成功以后,会弹出一个成功提示框,需要点一下鼠标或者给提示框传递一个回车键才可以关掉提示框。该怎么用软件实现呢???
现在往标题和文本框输入内容都可以了,可问题出现在提交上面,多数时候第一次提交都不能成功,第二次才可以,有时第二次都不行,不知道是否跟发帖延时有关系。
我是用:mainfm.mainwb.OleObject.document.parentWindow.execScript('VerifySubmit()','JavaScript'); 进行提交的。
在IE里试了一下,点击“发表帖子”的提交成功率要很多,但“发表帖子”是一个图片,没有id和name,参看了一些网上的代码也不知道如何定位这个元素并且模拟点击。
图片相关的html代码:<a href="javascript:VerifySubmit()" target="_self"><img src="image/060804_zb_anniu_32.gif" border="0"></a>
var
vDoc: IHTMLDocument2;
vMen: IHTMLElement;
vImg: IHTMLImgElement;
i: Integer;
LinkElement :IHTMLLinkElement ;
item:OleVariant;
begin vDoc := WebBrowser1.Document as IHTMLDocument2; if Assigned(vDoc) then
begin
for i := 0 to vDoc.all.length - 1 do
begin
vMen := vDoc.all.item(i, i) as IHTMLElement; if vMen.tagName='A' then
begin item := vDoc.all.item(i, i); if pos('VerifySubmit',item.href)>0 then
begin
vMen.click ;
end; end; end; end;
end;
begin
Document:=mainfm.mainwb.Document as IHtmlDocument2;
Str:=(Document.Images.Item(i,0) as IHTMLImgElement).Href;
if Pos('060804_zb_anniu_32.gif', str) <> 0 then
((Document.Images.Item(i, 0) as IHTMLImgElement) as IHTMLElement).Click;
end;我用上面的代码可以模拟点击提交图片了,现在就剩下最后一个问题,就是如何点击提交之后的成功消息框?
我试过用 keybd_event(13,0,0,0); 发送回车键,但回车键被程序主窗口的按钮接收了,反而造成了连续两次发帖。
该如何关掉发帖之后的成功消息框?