c# 浏览器 bug

碎片球球 2009-11-13 12:24:03
我看了很多人用c#写的浏览器,大部分都用的webbrowser 控件,这个倒也无所谓。运行后基本功能都没有问题。
但是都有一个共同的问题:
就是当链接是“弹出新窗口显示”时候,然后程序就会调用本地默认浏览器弹出新的页面了。这个问题不知道各位有没有解决办法?
我突然想到也许多标签页的可以解决,大家有没有这方面的范例?
如果还用原窗口显示的话,大家有什么办法呢?
...全文
402 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
碎片球球 2009-11-15
  • 打赏
  • 举报
回复
关于此贴的答案,本人已发布到我的博客上http://hi.csdn.net/link.php?url=http://blog.csdn.net%2Fxuehuic
修改newWindow事件是一个简单的方法,比较好的是派生一个新类。
grzx2210 2009-11-14
  • 打赏
  • 举报
回复
mark
bufan2162 2009-11-14
  • 打赏
  • 举报
回复
收藏下,以后有用到.
懦芞 2009-11-13
  • 打赏
  • 举报
回复
我有一个 别人做好的例子,你需要的话,可以给我发邮箱。363093940@qq.com
Dobzhansky 2009-11-13
  • 打赏
  • 举报
回复
webbrowser 控件作为 mshtml 的宿主,
只提供有限的能力,
基本显示还可以,
若要深入客制化,
还需了解 IHostDialogHelper, IDocHostUIHandler 等接口.

.net 这边不多见, vc 版那边多.



hwh0878 2009-11-13
  • 打赏
  • 举报
回复
我还没有学到啊,看不懂
风骑士之怒 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhoukang0916 的回复:]
C# codeprivatevoid webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel=true;
webBrowser1.Navigate(webBrowser1.StatusText);
}
[/Quote]
没试过,UP
PandaIT 2009-11-13
  • 打赏
  • 举报
回复
private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
webBrowser1.Navigate(webBrowser1.StatusText);
}
碎片球球 2009-11-13
  • 打赏
  • 举报
回复
貌似8楼的有道理,先谢谢啦,我去研究下
qlzf11140820 2009-11-13
  • 打赏
  • 举报
回复
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//将所有的链接的目标,指向本窗体
foreach (HtmlElement archor in this.webBrowser1.Document.Links)
{
archor.SetAttribute("target", "_self");
}
//将所有的FORM的提交目标,指向本窗体
foreach (HtmlElement form in this.webBrowser1.Document.Forms)
{
form.SetAttribute("target", "_self");
}
}
private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
}
WebBrowser1.AllowWebBrowserDrop=false;
WebBrowser1.WebBrowserShortcutsEnabled=false;
WebBrowser1.IsWebBrowserContextMenuEnabled=false
wuyq11 2009-11-13
  • 打赏
  • 举报
回复
private void wB_MainBrowser_NewWindow(object sender, CancelEventArgs e)
{
e.Cancel = true;
try
{
string url = this.wB_MainBrowser.Document.ActiveElement.GetAttribute("href");
this.wB_MainBrowser.Url = new Uri(url);
}
catch
{
}
}

参考
lzsh0622 2009-11-13
  • 打赏
  • 举报
回复
Navigate()方法导航到通过url指定的资源

object.Navigate( url As String, [Flags As Variant,] [TargetFrameName As
Variant,] [PostData As Variant,] [Headers As Variant])

参数TagetFrameName主要用于带框架的URL在浏览器窗口中的显示,其可能的选项为:
Blank(在新的空白窗口中显示)、
PARENT(在当前窗口的父窗口显示)、
SELF(在当前窗口显示)、
TOP(在当前窗口主体装载链接)等;

110,539

社区成员

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

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

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