×

delphi webbrowser delphi 网页

delphi webbrowser(delphi webbrowser浏览器控件;里面打开的网页,网页任意一点的坐标怎么获取)

admin admin 发表于2024-08-26 21:34:12 浏览4 评论0

抢沙发发表评论

各位老铁们,大家好,今天由我来为大家分享delphi webbrowser,以及delphi webbrowser浏览器控件;里面打开的网页,网页任意一点的坐标怎么获取的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

delphi webbrowser浏览器控件;里面打开的网页,网页任意一点的坐标怎么获取

这个需要js或者swf的配合或者是写BHO--------------随你怎么想 我用的js 记录点击信息 然后用swf做的点击报表BHO需要安装,在本机上测试可以用,其他用户需要安装,所以不现实webbrowser是一个activex控件,也就是说在webbrowser区域内是不属于vcl管辖的只能是ax返回消息给vcl,这就是我说的js点击节点的时候webbrowser会响应给vcl,但是如果在空白处或者非链接,按钮等元素是没有响应的,用js监听鼠标按下事件,然后回调给vclswf的绘图相对简单,加载页面之后,再根据点击点阵绘制点击热区,可以有效反映页面内的点击情况

delphi 怎么判断webbrowser打开网页成功

在同一个WebBrowser里显示,可以这样:再放一个小的WebBrowser2,设置它在WebBrowser1下面(设置Visible为False好象无效),// 在WebBrowser1的OnNewWindow2事件中:procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);beginppDisp := WebBrowser2.Application; // 新的窗口先指向WebBrowser2end;// 在WebBrowser2的OnBeforeNavigate2事件中:procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject;const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,Headers: OleVariant; var Cancel: WordBool);beginWebBrowser1.Navigate(string(URL)); // 再指回WebBrowser1Cancel := True;end;可以这样,窗体中放置两个PANEL,其中PANEL1中放WebBrowser1,PANEL2中放WebBrowser2,PANEL1和PANEL2、WebBrowser1和WebBrowser2的LEFT,TOP等所有属性设为一样。PANEL2的VISIBLE设为FALSE。然后添加代码如下即可:procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);beginppDisp:=WebBrowser2.Application;panel1.Visible:=false;panel2.Visible:=true;end;procedure TForm1.WebBrowser2NewWindow2(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);beginppDisp:=WebBrowser1.Application;panel2.Visible:=false;panel1.Visible:=true我只回答第一个问题,看你给多少分:1 NewWindow2的在接口中定义的原形:procedure NewWindow2(Sender: TObject; var ppDisp: IDispatch;var Cancel: WordBool);2 通过传递一个WebBrowser的控制借口给ppDisp可以让新网页在指定的Wb中浏览ppDisp:=WebBrowser1.Browser.ControlInterface;3 在刚才传递的WebBrowser的OnBeforeNavigate2事件中就可以获得将要打开的URL了!function SaveToStream(AStream: TStream): HRESULT;varIpStream: IPersistStreamInit;beginwith browser1 dobeginwhile ReadyState 《》 READYSTATE_COMPLETE doForms.Application.ProcessMessages;if Assigned(Document) thenbeginIpStream := Document as IPersistStreamInit;Result := IpStream.save(TStreamAdapter.Create(AStream), TRUE);end else Result := S_FALSE;end;end;function Loadfromstream(AStream:TStream):hresult;beginwith browser1 dobeginif not Assigned(Document) thenbeginnavigate2(’about:blank’,0,0,0,0);while readystate 《》 READYSTATE_COMPLETE do Forms.Application.ProcessMessages;end;AStream.seek(0, 0);Result := (Document as IPersistStreamInit).Load(TStreamadapter.Create(AStream));end;end;

DELPHI 如何获得 Webbrowser 浏览文件夹 选中的文件路径

//哥封装的函数function GetWebPath(web:TWebBrowser): string;var item : TLvItem; clsName: array of char; hwndLv: HWND; selCount,fileCount,selMark:integer; fileName: array of char;begin hwndLV := GetWindow(web.Handle,GW_CHILD); hwndLV := GetWindow(hwndLV,GW_CHILD); GetClassName( hwndLV,clsName,MAX_PATH); if(UpperCase(clsName)《》’SYSLISTVIEW32’)then Exit; Result := web.LocationURL; Result := StringReplace(Result,’file:///’,’’,); Result := StringReplace(Result,’/’,’\’,); if(Result《》’\’)then Result := Result + ’\’; fileCount := ListView_GetItemCount(hwndLV); selCount := ListView_GetSelectedCount(hwndLV); selMark := ListView_GetSelectionMark(hwndLV); if(selCount=0)or(selMark=-1)then exit; ListView_GetItemText(hwndLV,selMark,0,@fileName,MAX_PATH); Result := Result + fileName;end;//调用示例procedure TForm1.Button1Click(Sender: TObject);begin ShowMessage( GetWebPath(WebBrowser1) );end;注意:uses commctrl

delphi webbrowser webBrowser可以获取ajax生成的内容吗

WebBrowser 调用的是 windows 系统提供的 OLE 控件,基于 IE 浏览器。通常如果不特别指定 TWebBrowser 版本的话,Webbrowser 控件会使用 IE7 兼容模式来显示网页内容。一般来说,WebBrowser 的浏览效果与在 IE 里浏览的效果是一样的,因此,ajax 也能获取内容。由于 ajax 是异步通讯,其实际来说,其获取的数据,都是向服务器发送请求,再更新网页局部页面,因此,如果只是想获取 ajax 的数据,可以直接找到 ajax 的 post/get 的 url,直接访问即可,通常获取数据可能的格式是 json,解析一下就可以了。

如果你还想了解更多这方面的信息,记得收藏关注本站。