是否可以将所有网页链接更改为打开到新的IE窗口而不是在EmbeddedWB内?
我希望有一个类似的行为,就像您在EmbeddedWB中右键单击超链接并选择上下文菜单选项OPEN IN NEW WINDOW一样。 IE本身在EmbeddedWb之外打开。
是否可以通过OnBeforeNavigate2执行此操作而不执行IE作为新进程,我想使用相同的进程。 将IE打开到同一过程的原因是我希望cookie等能够正常运行。
答案 0 :(得分:0)
所以你想在你的应用程序中实现多窗口浏览吗?
为了做到这一点,你可以在其上动态创建一个带有TWebBrowser组件的新窗口(一个表单),然后将TWebBrowser导航到特定页面而不是点击所在页面。
或者也许创建一种选项卡式界面,其中每个选项卡上都有自己的TWebBrowser组件实例。
或许您甚至想在自己的应用程序的新实例中显示它。在这种情况下,您需要开发您的应用程序,以便它可以接受额外的启动参数,该参数将告诉它应该在启动时导航到哪个网页。
简而言之,每次需要创建一个TWebBrowser组件的新实例时。是的OnBeforeNavigate2事件是正确的,因为你可以阻止原始的TWebBrowser导航到点击超链接点的页面。
答案 1 :(得分:0)
在OnBeforeNavigate2链接点击后,IE执行时似乎共享了cookie。
function ExecuteHtml(const URL :string): THandle;
var
zURL, zParams, zDir: array[0..255] of Char;
filename: string;
begin
Result := ShellExecute(Application.MainForm.Handle, 'open',
pchar('Iexplore.exe'),StrPCopy(zURL, URL),
StrPCopy(zDir, ''), SW_SHOWDEFAULT );
end;