如何解决webBrowser新开页面问题?

wangfeng002 2008-12-04 10:30:56
如何解决webBrowser新开页面问题?
问题:
页面中的链接target=_blank 或 window.open()引起的页面新开,直接就用ie打开了,我想就在当前webBrowser中显示新页。
如何解决?

令,如果是ie新开,新开页面会丢失Session吗?
谢谢!

分不够,再加!在线等!!!
...全文
645 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvv.me 2010-08-31
  • 打赏
  • 举报
回复
我都登陆了,还看不到得分回复。。。
随风v5 2009-04-07
  • 打赏
  • 举报
回复
不错.看一下了.
grearo 2008-12-04
  • 打赏
  • 举报
回复
用mshtml吧
zx005 2008-12-04
  • 打赏
  • 举报
回复
private void webBrowser_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;

webBrowser.Navigate(webBrowser.Document.ActiveElement.GetAttribute("href"));

}

gogogo 2008-12-04
  • 打赏
  • 举报
回复
12楼代码是新开一个自定义的含有WebBrowser控件的窗体显示新页面
gogogo 2008-12-04
  • 打赏
  • 举报
回复
而且可以负责任的告诉你,只要你的进程没关闭,即使webbrowser关闭了,你的session仍然有效。
gogogo 2008-12-04
  • 打赏
  • 举报
回复
给你段delphi代码参考
procedure TForm1.wbBrowserNewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
try
if Assigned(frmWB) then
freeAndNil(frmWB);
frmWB := TfrmOpenWb.Create(self);
frmWB.Visible:=true;
ppDisp := frmWB.WebBrowser1.ControlInterface;
Cancel:=false;
except
end;
end;
lijunfeng 2008-12-04
  • 打赏
  • 举报
回复
原样当然是死循环,加点控制语句可以避免的,另外可以通过e.TargetFrame判断是不是新开窗口
feiyun0112 2008-12-04
  • 打赏
  • 举报
回复
http://support.microsoft.com/default.aspx/kb/815714/zh-tw
yaoleshi 2008-12-04
  • 打赏
  • 举报
回复
你自己就是高手,还来问别人?

wangfeng002 2008-12-04
  • 打赏
  • 举报
回复
使用NewWindow怎样获取链接的url呀?
moxi00 2008-12-04
  • 打赏
  • 举报
回复
Response.Write(" <script language=\"javascript\">window.open
('aaa.aspx','新窗口,\"toolbar=yes,location=no,directories=yes,
status=yes,menubar=yes,resizable=yes,scrollbars=yes\");
wangfeng002 2008-12-04
  • 打赏
  • 举报
回复
to:lijunfeng

开玩笑,这不死循环了。应该是NewWindow才对!
feiyun0112 2008-12-04
  • 打赏
  • 举报
回复
用这个控件
http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

有newwindow事件

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
lijunfeng 2008-12-04
  • 打赏
  • 举报
回复
响应webbrowser的Navigating事件
截取e.Url,然后将e.Cancel设为true以取消操作,然后将webbrowser直接导航至Url
jishengzu 2008-12-04
  • 打赏
  • 举报
回复
ASP.NET打开新窗口方法一:

Response.Write("<script language=\"javascript\">window.open('aaa.aspx','新窗口,\"toolbar=yes,location=no,directories=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes\");</script>");

这种方式代码每次是生成在页面最顶端

ASP.NET打开新窗口方法二:

string strScript = "";
strScript += "<script language=\"javascript\">\n";
strScript += "window.open('aaa.aspx','新窗口,\"toolbar=yes,location=no,directories=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes\");\n";
strScript += "location.href='index.html';";
strScript += "</script>";

网上抄的 不知道好用不
wangfeng002 2008-12-04
  • 打赏
  • 举报
回复
高手在吗?
wangfeng002 2008-12-04
  • 打赏
  • 举报
回复
比较着急,谢谢各位高手!
wangfeng002 2008-12-04
  • 打赏
  • 举报
回复
谁有没有方法解决网页中的alert消息框,不让显示并能捕捉到alert的内容更好!

谁还有更好解决方法!
wangping_li 2008-12-04
  • 打赏
  • 举报
回复

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
IHTMLWindow2 win = (IHTMLWindow2)webBrowser1.Document.Window.DomWindow;
string s = "window.alert = null;\r\nwindow.confirm = null;\r\nwindow.open = null;\r\nwindow.showModalDialog = null;";
win.execScript(s, "javascript");
}

加载更多回复(7)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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