C# System.Windows.Forms.WebBrowser中判断浏览器内核和版本

参考 [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器

利用js来判断

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
           //webBrowser1.Navigate(@"C:\Users\admin\Desktop\test.html");
            webBrowser1.DocumentText = "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\r\n    <script type=\"text/javascript\">\r\n        function getBroswer() {\r\n            var sys = {};\r\n            var ua = navigator.userAgent.toLowerCase();\r\n            var s;\r\n            (s = ua.match(/edge\\/([\\d.]+)/)) ? sys.edge = s[1] :\r\n                (s = ua.match(/rv:([\\d.]+)\\) like gecko/)) ? sys.ie = s[1] :\r\n                    (s = ua.match(/msie ([\\d.]+)/)) ? sys.ie = s[1] :\r\n                        (s = ua.match(/firefox\\/([\\d.]+)/)) ? sys.firefox = s[1] :\r\n                            (s = ua.match(/chrome\\/([\\d.]+)/)) ? sys.chrome = s[1] :\r\n                                (s = ua.match(/opera.([\\d.]+)/)) ? sys.opera = s[1] :\r\n                                    (s = ua.match(/version\\/([\\d.]+).*safari/)) ? sys.safari = s[1] : 0;\r\n\r\n            if (sys.edge) return { broswer: \"Edge\", version: sys.edge };\r\n            if (sys.ie) return { broswer: \"IE\", version: sys.ie };\r\n            if (sys.firefox) return { broswer: \"Firefox\", version: sys.firefox };\r\n            if (sys.chrome) return { broswer: \"Chrome\", version: sys.chrome };\r\n            if (sys.opera) return { broswer: \"Opera\", version: sys.opera };\r\n            if (sys.safari) return { broswer: \"Safari\", version: sys.safari };\r\n\r\n            return { broswer: \"\", version: \"0\" };\r\n        }\r\n        function myFunction() {\r\n            var d = getBroswer();\r\n            alert(d.broswer + d.version);\r\n\r\n        }\r\n        myFunction();\r\n    </script>\r\n</head>\r\n\r\n<body>\r\n    <script type=\"text/javascript\">\r\n        document.write(\"<p>UserAgent: \")\r\n        document.write(navigator.userAgent + \"</p>\")\r\n    </script>\r\n    <h1 id=\"h01\"></h1>\r\n</body>\r\n</html>";
        }
    }
}
  
时间: 2024-08-01 09:34:52

C# System.Windows.Forms.WebBrowser中判断浏览器内核和版本的相关文章

System.Windows.Forms.WebBrowser中 处理 js 脚本 window.Open 禁止新建窗口 的方法

wb 是 拖放在窗体上的 System.Windows.Forms.WebBrowser 在你的窗体代码中定义 SHDocVw.WebBrowser_V1 wb1; 在 你窗体的 load 事件中 加入下面的代码 wb1 = wb.ActiveXInstance as SHDocVw.WebBrowser_V1; wb1.NewWindow += wb1_NewWindow; 处理事件: void wb1_NewWindow(string URL, int Flags, string Targe

js判断浏览器内核和版本(包括手机端设备)

var X, xue;xue = xue || function(expr, fn) {    return xue.dom ? xue.dom(expr, fn) : {};};X = xue;window.xue = xue; xue.browser = xue.browser || {};xue.browser.uga = navigator.userAgent.toLowerCase(); xue.browser.mozilla = /firefox/.test(xue.browser.

System.Windows.Forms.ListView : Control

#region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll #endregion using System.Collections; using System.ComponentModel; using Syst

c#或者C#.net中的“ToolTip”是“System.Windows.Forms.ToolTip”和“DevComponents.DotNetBar.ToolTip”之间的不明确的引用

“ToolTip”是“System.Windows.Forms.ToolTip”和“DevComponents.DotNetBar.ToolTip”之间的不明确的引用 ,在编程时,有时候会编译出现不明确的引用,这时候可以把Tootip写成标准的格式就可以了 比如: ToolTip tip = new ToolTip();            {                var msg = "你是一个中国人";                tip.IsBalloon = tru

System.Diagnostic.Process.Start vs System.Windows.Forms.Help.ShowHelp 打开CHM文件

CHM文件,Microsoft Compiled HTML Help,即"已编辑的帮助文件",包含一系列的HTML文件,index文件和其它的导航工具,经常作为产品的帮助文件[1]. 在.Net程序中,打开这种文件最简单的方式就是调用System.Windows.Forms.Help.ShowHelp()方法.根据MSDN,重载了四种调用方式[2].Control为父控件,string为Help文件的URL,HelpNavigator是一个枚举类型,可以采用Index或者Topic或者

System.Windows.Forms.Timer、System.Timers.Timer、System.Threading.Timer的差别和分别什么时候用

一.System.Windows.Forms.Timer 1.基于Windows消息循环,用事件方式触发,在界面线程执行:是使用得比较多的Timer,Timer Start之后定时(按设定的Interval)调用挂接在Tick事件上的EvnetHandler.在这种Timer的EventHandler中可 以直接获取和修改UI元素而不会出现问题--因为这种Timer实际上就是在UI线程自身上进行调用的. 2.它是一个基于Form的计时器3.创建之后,你可以使用Interval设置Tick之间的跨

错误 128 无法将类型“string”隐式转换为“System.Windows.Forms.DataGridViewTextBoxColumn”

原因是DataGridView中列的Name属性值和DataPropertyName属性值一样,比如Name="CardID",DataPropertyName="CardID",这样会出现 :错误 128 无法将类型"string"隐式转换为"System.Windows.Forms.DataGridViewTextBoxColumn"

System.Windows.Forms.Control : Component, IOleControl, IOleObject, IOleInPlaceObject, IOleInPlaceActiveObject....

#region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll #endregion using System.Collections; using System.ComponentModel; using Syst

WPF 添加ACTIVEX 控件 ——System.Windows.Forms.AxHost+InvalidActiveXStateException异常

---恢复内容开始--- 一.ACTIVEX及其相关概念 COM(Component Object Model,对象组件模型): DCOM(Distributed COM,分布式对象组件模型): CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构): 动态数据交换(Dynamic Data Exchange,DDE),解决了数据的更新,但数据格式仍是问题: 对象的链接与嵌入(Object Linking and Embedde