加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

.net – 如何强制Web浏览器控件始终在同一窗口中打开网页?

发布时间:2020-12-14 21:20:23 所属栏目:资源 来源:网络整理
导读:我需要在我的应用程序中使用Web浏览器,因为它保留了员工的重复性任务,但是在点击锚点后,javascript会在IE中打开一个新窗口.如何告诉Web浏览器控件“打开新窗口”我想要打开它?例如在其他Web浏览器控件中? 解决方法 退房: proof-of-concept of .NET System
我需要在我的应用程序中使用Web浏览器,因为它保留了员工的重复性任务,但是在点击锚点后,javascript会在IE中打开一个新窗口.如何告诉Web浏览器控件“打开新窗口”我想要打开它?例如在其他Web浏览器控件中?

解决方法

退房: proof-of-concept of .NET System.Windows.Forms.WebBrowser module using源代码

我对这种控制的经验给了我一个愿景,即这个问题可以在接下来的步骤中解决:

>总是取消NewWindow活动
>点击all links点击
>但并非所有链接都可以通过这种方式缓存,因此我决定解析所有标记< a>手动于Document Loading Completion
>一般来说,这种控制非常差,并且是故意由微软做出的.虽然在Webrowser.Document.HtmlDocument和命名空间MSHTML之间有强大的工具集
>它使用的一个例子是HtmlElement.DomElement

foreach(HtmlElement tag in webBrowser.Document.All)        
{
  switch (tag.TagName.ToUpper)
  {
    case "A":
    {
      tag.MouseUp += new HtmlElementEventHandler(link_MouseUp);
      break;
    }
  }
}

void link_MouseUp(object sender,HtmlElementEventArgs e)
{
  HtmlElement link = (HtmlElement)sender;
  mshtml.HTMLAnchorElementClass a = (mshtml.HTMLAnchorElementClass)link.DomElement;
  switch (e.MouseButtonsPressed)
  {
    case MouseButtons.Left:
    {
      if ((a.target != null && a.target.ToLower() == "_blank") ||
          e.ShiftKeyPressed ||
          e.MouseButtonsPressed == MouseButtons.Middle)
      {
        // add new tab
      }
      else
      {
        // open in current tab
      }
      break;
    }
    case MouseButtons.Right:
    {
      // show context menu
      break;
    }
  }
}

在第一个链接中查看更多信息,这是主窗口的源代码,那里有很多不同的操作!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读