C# WebBrowser 取 window.open 新窗口 url的方法

System.Windows.Forms.WebBrowser wb;       //WebBrowser 对象

wb.NewWindow += new CancelEventHandler(wb_NewWindow);
wb.DocumentCompleted += delegate
{               
#region 处理window.open新开窗口的问题

System.Windows.Forms.HtmlElement html = wb.Document.CreateElement("div");
html.InnerHtml += "<a id=\"popLink\" href=\"\" target=\"_blank\" style=\"display:none;\"></a>";
wb.Document.Body.AppendChild(html);

string jsHtml = "";
jsHtml += "window.open=function(url, title, prop)  ";
jsHtml += "{";
jsHtml += "obj = document.getElementById('popLink');  ";
jsHtml += "obj.style.display='block';  ";
jsHtml += "obj.href=url;  ";
jsHtml += "obj.focus();  ";
jsHtml += "obj.click();  ";
jsHtml += "obj.style.display='none'  ";
jsHtml += "} ";
mshtml.IHTMLDocument2 doc = wb.Document.DomDocument as mshtml.IHTMLDocument2;
mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;
win.execScript(jsHtml, "javascript");

#endregion

};


static void wb_NewWindow(object sender, CancelEventArgs e)
{
System.Windows.Forms.WebBrowser web = (System.Windows.Forms.WebBrowser)sender;
string newUrl = web.StatusText.ToString();
showNewWinWithUrlInner(null, newUrl, "", 800, 600, true, false);//自己取到新窗口url后自行处理
e.Cancel = true;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之rpm

1、rpm Linux rpm 命令用于管理套件 -a  查询所有套件。-b<完成阶段><套件档>+或-t <完成阶段><套件档>+  设置包装套件的完成阶段,并指定套件档的文件名称。-c  只列出组态配置文件,本参数需配合"-l"参数使用。-d  只列出文本文件,…

保姆级的HTML零基础教程少见吧?这是第一节(1)

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。 目录 HTML基…

WPF 通用权限开发框架 (ABP)

前言对于大部分.NET 开发者来说, 都比较熟悉目前流行的ABP框架, 基于开源的ABP框架, 可以自己进行二次开发, 无需重新开发一些基础功能,例如: 用户角色管理、权限、组织、多租户等等。但是对于ABP框架来说, 提供给.NET开发者的可选项非常少, 目前也仅仅是提供了基于Web的解决方…

甘肃省事业单位公考招聘考试权威复习资料---GIS专业综合复习题(一)

1. 数字城市 以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用遥感、全球定位系统、地理信息系统、遥测、仿真-虚拟等技术,对城市进行多分辨率、多尺度、多时空和多种类的三维描述,即利用信息技术手段把城市的过去、现状和未来的全部内容在网络上进…

MongoDB 3.0 新增特性一览

引言 在历经版本号修改&#xff08;2.8版本直接跳到3.0版本&#xff09;和11个rc版本之后&#xff0c;MongoDB3.0于2015年3月3日正式发布。可以毫不夸张的说&#xff0c;该版本的新增特性标志着MongoDB这款典型的NoSQL数据库已经进入了一个全新的发展阶段。本文以下内容会逐个盘…

[华清远见]FPGA公益培训

本套视频教程为华清远见 网络公益培训活动&#xff0c;主讲人&#xff1a;姚远老师&#xff0c;华清远见高级讲师。 ---------------------------------------------------------------------------------------- “红色飓风FPGA普及行动” 课程内容&#xff1a; 第一讲、FPGA设…

单一职责原则--设计模式系列

定义 一个类只负责一项职责 职责扩散 什么叫职责扩散&#xff0c;就是职责再进行细化&#xff0c;就拿公司来说&#xff0c;好比客户的需求&#xff0c;需求是不断变化的&#xff0c;而且存在极大的不确定性&#xff0c;说不定哪天上司找到你要重新细化某个需求 所以最好在职责…

淘宝网的技术发展史(一)——个人网站时代

《天下网商经理人》十月刊开始将连载系列文章《淘宝网的技术发展史》&#xff0c;为读者描述淘宝网在整个发展过程中&#xff0c;所有的主动和被动的技术变革的前因后果。 文/淘宝技术大学培训专家 子柳 前言 11月11日&#xff0c;这个棍子最多的日子被网民自我调侃变成了一个…

linux之彻底卸载mysql

1 问题 在centos系统下彻底卸载mysql 2 操作方式 1)、查看mysql的信息 rpm -qa | grep -i mysql mysql57-community-release-el7-10.noarch mysql-errmsg-8.0.17-3.module_el8.0.0+181+899d6349.x86_64 mysql-8.0.17-3.module_el8.0.0+181+899d6349.x86_64 mysql-server-8.…

使用 Vscode 编写 HTML 文档竟然可以自动写代码(2)

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。 目录 HTML基…

甘肃省事业单位公考招聘考试权威复习资料---GIS专业全真模拟题(一)

一、单选 1. 以下那个可以从像元级别、特征级别进行&#xff08; &#xff09;。 A.增强 B.锐化 C.重采样 D.裁剪 2. 1:10000比例尺地形图的格网大小是&#xff08; &#xff09;。 A.30m B.100m C.10m D.5m 3. 电子地图中加载矢量数据属于&#xff08; &…

为什么 Docker 和 Kubernetes 是用 Go 写的而不是 C# ?

这是 Reddit 平台上面这几天一篇比较热门的帖子, 非常有意思&#xff0c;本文我列出了几个高赞的回答。&#x1f466; HahahahahaSoFunny为什么 Docker 和 Kubernetes 工具是用 Go 写的而不是 C#&#xff1f;总所周知&#xff0c;现在开发人员使用的很多新工具大多是用 Go 写的…

打造最舒适的webview调试环境

你在做移动web开发的时候是不是只是在Chrome下开启移动模式&#xff0c;然后就啪啪啪闷头敲代码了&#xff1f;如果你平时只是做做宣传页&#xff0c;Chrome的移动模式可能就能满足你。但是现在越来越多的应用采用Hybrid的开发方式&#xff0c;这样的话就可能在web页面上调用we…

淘宝网的技术发展史(二) ——Oracle替换MySQL

本文是《淘宝网的技术发展史》系列连载文的第二篇&#xff0c;在告别个人网站时代后&#xff0c;淘宝网的技术发展迎来了由Oracle开启的第二个时代。文/淘宝技术大学培训专家 子柳MySQL撑不住了 淘宝网作为个人网站发展的时间其实并不长&#xff0c;由于它太引人注目了&#xf…

数据结构——不相交集(并查集)

目的&#xff1a;解决等价问题。 表示方法&#xff1a;森林&#xff0c;底层实现用数组 主要操作&#xff1a;find()、union() 优化手段&#xff1a; ①find()时路径压缩 ②union()时按规模合并、按树高合并&#xff08;依据情况而定&#xff09; Java实现&#xff1a; class D…

Android之抓取adb logcat全日志后怎么过滤掉只包含当前app进程的日志(一般抓启动app奔溃日志)

1 、问题 有时候我们启动APP的时候&#xff0c;APP奔溃&#xff0c;在android studio里面日志可能冲掉&#xff0c;或者是云平台的手机安装的app&#xff0c;根本就没有android stduio&#xff0c;那我们用什么办法快速知道启动奔溃日志呢&#xff1f; 2、解决办法 我们先需要…

一个基础的 HTML 文档有哪些标签?(3)

作者简介 作者名&#xff1a;1_bit 简介&#xff1a;CSDN博客专家&#xff0c;2020年博客之星TOP5&#xff0c;蓝桥签约作者。15-16年曾在网上直播&#xff0c;带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息&#xff0c;迷茫的你会找到答案。 目录 HTML基…

考研:中国科学院地理所历年GIS研究生入学考试真题汇总

中科院地理所1997年GIS研究生入学试题 一、名词解释 1.拓扑关系 2.缓冲分析 3.关系数据模型 4.空间叠加 二、简答题 1、GIS的主要功能略 2、企业GIS系统的特色 三、问答题(选2) 1、GIS基本组成与主要应用领域 2、地理科学数据集成与管…

能上架App的GooglePlay开发者账号获取流程

googleplay 开发者账号申请流程 接到公司号召&#xff0c;要让我们的app走向世界&#xff0c;上架GooglePlay&#xff0c;都说天朝的Android 程序员是折翼的天使&#xff0c;猛然发现写了做么多年的Android&#xff0c;竟然不知道怎么成为GooglePlay开发者。 以前尝试过&#x…

如何让 ASP.NET Core 支持绑定查询字符串中的数组(2)

前言上回说到&#xff0c;我们实现了IntArrayModelBinder&#xff0c;可以让 ASP.NET Core 绑定查询字符串中的数组。但是必须显示指定ModelBinder&#xff1a;public string Get([FromQuery][ModelBinder(BinderType typeof(IntArrayModelBinder))] int[] values)而官方提供的…