• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 在C#中 webbrowser的使用心得

在C#中 webbrowser的使用心得

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#webbrowser,c#中webbrowser,c#webbrowser1,c#webbrowser 内核,c#webbrowser js等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1.首先是屏蔽浏览器右键菜单的问题,
用以下代码可以让浏览器用自己的右键菜单:
tempBrowser.ContextMenuStrip = this.contextMenuStrip1;
tempBrowser.IsWebBrowserContextMenuEnabled = false;

但是很不幸,上面的代码在有的机器上不起作用,开始以为是环境或者流氓插件的问题,折磨了很久无果,后来把.net升级到4.0竟然解决了这个问题,估计就是微软webbrowser控件的问题

2.屏蔽拷贝快捷键和截屏快捷键

        public bool PreFilterMessage(ref Message msg)
        {
            if (msg.Msg == WM_KEYDOWN || msg.Msg == WM_KEYUP)
            {
                StringBuilder sb = new StringBuilder(50);
                GetClassName(msg.HWnd, sb, 50);

                if (sb.ToString().ToLower() == "internet explorer_server")
                {
                    if ((Control.ModifierKeys == Keys.Control && (((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.C)) || ((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.PrintScreen || ((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.Menu)
                    {
                        MessageBox.Show("当前系统禁止内容复制,如需系统内部复制粘贴,请使用右键菜单的功能!", "屏蔽");
                        Clipboard.SetDataObject("null");
                        return true;
                    }
                }
            }

            return false;
        }

3.解决webbrowser遇到window.open无法打开页面的问题
是因为打开页面的url一般是通过myBrowser.StatusText来获取的,但是window.open是无法获取真正的url的,解决办法就是在webbrowser的NewWindow事件中特殊处理window.open的事件,获取真正的url地址
            WebBrowser myBrowser = (WebBrowser)sender;
            TabPage mypage = (TabPage)myBrowser.Parent;
            string NewURL = "";
            string html = myBrowser.Document.ActiveElement.OuterHtml;
            string pattern = @"<button.*?onclick=.*\('(.*)'\).*";
            MatchCollection matches = Regex.Matches(html, pattern, RegexOptions.IgnoreCase);
            if (matches.Count == 1)
            {
                Match m = matches[0];
                Group g = m.Groups[1];
                if (g != null && g.Length > 0)
                {
                    string address = myBrowser.Url.Scheme + "://" + myBrowser.Url.Host + ":" + myBrowser.Url.Port + g.ToString();
                    NewURL = address.Replace("&", "&");
                }
            }
            NewURL = string.IsNullOrEmpty(NewURL) ? myBrowser.StatusText : NewURL;


很遗憾这种方法只能适合一页中只有一个window.open的情况,如果有多个window.open,我们可以用下面的方法:在webbrowser的DocumentCompleted中,if (mybrowser.DocumentText.IndexOf("window.open(") > -1),然后把所有window.open替换为window.location.href。但是后来发现系统执行过这个过程之后,webbrowser的url会变成原来的url,不知道有没有朋友能知道为什么。

4.屏蔽webbrowser拖拽网页内容到外部word等的问题
        private void tempBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowser tempBrowser = (WebBrowser)sender;
            tempBrowser.Parent.Text = tempBrowser.DocumentTitle;
            HtmlElement ele = tempBrowser.Document.CreateElement("script");//新增
            ele.SetAttribute("type", "text/javascript");
            ele.SetAttribute("text", "document.body.ondragstart=function(){window.event.returnValue=false;};");
            tempBrowser.Document.Body.AppendChild(ele);
 }

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#分析URL参数并获取参数和值对应列表的方法
  • C#中WebBrowser.DocumentCompleted事件多次调用问题解决方法
  • C#的WEBBROWSER与JS交互小结
  • C#之WinForm WebBrowser实用技巧汇总
  • C#的WebBrowser操作frame实例解析
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • 在C#中 webbrowser的使用心得
  • C#的WebBrowser的操作与注意事项介绍
  • webBrowser代理设置c#代码

相关文章

  • 2017-05-28C#中的尾递归与Continuation详解
  • 2017-05-28asp.net新闻列表生成静态页之批量和单页生成
  • 2017-05-28ref 和out传参的区别分析
  • 2017-05-28C#端口转发用法详解
  • 2017-05-28基于switch你可能不知道的一些用法
  • 2017-05-28C#基础之数组排序、对象大小比较实现代码
  • 2017-05-28C#生成随机字符串的实例
  • 2017-05-28C#处理Paint事件的方法
  • 2017-05-28C#编程实现对象与JSON串互相转换实例分析
  • 2017-05-28C#中math类的全部运算方法(总结)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • DevExpress实现禁用TreeListNode CheckBox的方法
    • C#实现同Active MQ通讯的方法
    • 关于ASP网页无法打开的解决方案
    • c# HttpWebRequest通过代理服务器抓取网页内容应用介绍
    • c#使用资源文件的示例
    • C#事件处理和委托event delegate实例简述
    • C#实现给DataGrid单元行添加双击事件的方法
    • javascript函数中执行c#函数的方法
    • C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)
    • 汉字转拼音软件制件示例(汉字转字母)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有