EmbeddedWB使用的问题,如何判断链接是target='blank',还是没有,我想用以判断是否需要新开页面。

王麻子 2003-05-18 10:57:07
问题如上:
我们在使用IE时如果某个网页链接是有target='blank'设定的:
<a href='http://www.google.com' target='blank'>google搜索器</a>
则点开时新开一个窗口。而
<a href='http://www.google.com'>google搜索器</a>
则在当前窗口打开。
我的EmbeddedWB控件如何对此作出判断。
程序中我使用EmbeddedWB1.Go(TheNewUrl);这样的连接代码

另:在IE中如果按了shift再点这个连接无论有无target='blank'都会开新页如何实现。
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
INeedCa 2003-05-18
  • 打赏
  • 举报
回复
Set the onNewWindows Event when you create a WebBrowser: WB.OnNewWindows2 := YourProc;

In YourProc:
Create A New WB;
ppDisp := The New WB;

---
The events of WB are very useful.
You can see MSDN for more info about WB.
Good luck!
888888888888 2003-05-18
  • 打赏
  • 举报
回复
关注
INeedCa 2003-05-18
  • 打赏
  • 举报
回复
点击事件需要自己写吗? 

EmbeddedWB应该也是对IE的封装吧? 应该不需要你自己写Go这样的代码,如果是新开窗口,会触发OnNewWindow事件的,在那个事件中进行处理即可.
王麻子 2003-05-18
  • 打赏
  • 举报
回复
这段代码是这样实现的:
procedure MainForm.MsOpenPage(var Message: TMessage);
var
L: array[0..MAX_PATH] of Char;
begin
GlobalGetAtomName(Message.LParam, L, 255);
CanCreateNewPage(L);
end;
procedure MainForm.CanCreateNewPage(const TheNewUrl: String);
begin
//我想是这里的条件不充分,不知道您能否给我点建议
if ((TEmbeddedWBForm(ActiveMDIChild).WB.LocationURL = 'about:blank') or
(WebTab1.Tabs[ActiveMDIChild.Tag]=BlankStr)) and
(WebTab1.Indexes[ActiveMDIChild.Tag]='-1') then
begin
TEmbeddedWBForm(ActiveMDIChild).WB.Go(AUrl);
IEAddress.Text := AUrl;
end else begin
LockWindowUpdate(Handle);
CreateNewPages(TheNewUrl);
GotoTop;
LockWindowUpdate(0);
end;

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧