参考 [完美]原生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>";
}
}
}
  

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

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

    wb 是 拖放在窗体上的 System.Windows.Forms.WebBrowser 在你的窗体代码中定义 SHDocVw.WebBrowser_V1 wb1; 在 你窗体的 load 事件中 加 ...

  2. “System.Runtime.InteropServices.COMException”类型的第一次机会异常在 System.Windows.Forms.dll 中发生

    最近做一个winform项目,在里面用了webbrowser控件进行html文档打印,遇到了标题所示问题.根据查到的一些资料,在调试>异常>查找中输入“System.Runtime.Int ...

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

    var X, xue;xue = xue || function(expr, fn) {    return xue.dom ? xue.dom(expr, fn) : {};};X = xue;wi ...

  4. 找不到命名空间命名空间:System.Windows.Forms

    System.Windows.Forms在system.windows.forms.dll中.需要添加引用.在解决方案资源管理器中的引用上单击右键,选择添加引用.找到System.windows.fo ...

  5. System.Windows.Forms.ListView : Control

    #region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ...

  6. WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常

    WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常 在wpf中封装Com组件时,调用组件 ...

  7. System.Windows.Forms.AxHost.InvalidActiveXStateException”类型的异常在 ESRI.ArcGIS.AxControls.dll 中发生,但未在用户代码中进行处理

    private void CopyAndOverwriteMap() { //IObjectCopy接口变量申明 IObjectCopy objectCopy = new ObjectCopyClas ...

  8. C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常,不存在从对象类型System.Windows.Forms.DateTimePicker到已知的托管提供程序本机类型的映射。

    一:C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常 其实,这个问题与C#的垃圾回收有关.垃圾回收器管 理所有的托管对象,所有需要托管数据的.NET语言(包括 C#)都受运行库的 垃圾回收器 ...

  9. 命名空间“System.Windows.Forms”中不存在类型或命名空间名称“DataVisualization”。是否缺少程序集引用?

    using System.Windows.Forms.DataVisualization.Charting; 编译时报警:命名空间"System.Windows.Forms"中不存 ...

随机推荐

  1. js如何遍历表单所有控件

    js如何遍历表单所有控件 一.总结 一句话总结: 1.获取form表单里面的的所有元素:通过formelement.elements,这里form元素通过name属性直接定位 var fele=for ...

  2. gdal以GA_Update方式打开jpg文件的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 gdal库是不支持以GA_Update方式打开jpg文件的,原因在于gdal_1_10_1\frmts\jpeg文件夹 ...

  3. 垃圾回收GC:.Net自己主动内存管理 上(三)终结器

    垃圾回收GC:.Net自己主动内存管理 上(三)终结器 垃圾回收GC:.Net自己主动内存管理 上(一)内存分配 垃圾回收GC:.Net自己主动内存管理 上(二)内存算法 垃圾回收GC:.Net自己主 ...

  4. 微信小程序实例:实现tabs选项卡效果

    最近微信应用号是炒的如火如荼,热门满满,但是也可以发现搜索关键词出来,各类网站出现的还都是微信的官方文档解释.正好赶上这个热潮,这几天先把小程序技术文档看了个遍,就直接着手写案例了.很多组件微信内部已 ...

  5. hadoop 3.x 完全分布式集群搭建/异常处理/测试

    共计三台虚拟机分别为hadoop002(master,存放namenode),hadoop003(workers,datanode以及resourcemanage),hadoop004(workers ...

  6. Methods for Using Message Queuing Telemetry Transport for Sensor Networks to Support Sleeping Devices

    Methods support a sleep mode for an embedded device. Embedded devices like sensors and actuators use ...

  7. hdu 1087 Super Jumping! Jumping! Jumping!(dp 最长上升子序列和)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 ------------------------------------------------ ...

  8. HDOJ 4901 The Romantic Hero

    DP....扫两次合并 The Romantic Hero Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 ...

  9. java学习笔记(7)——I/O流

    一.File类 File(File parent, String child); File(Stirng filename); ------------------------------------ ...

  10. QT定时器的两种应用(QObject就有timerEvent事件,一种什么样的居心呢?)

    QT中定时器的使用方法(1)重载timerEvent(QTimerEvent *)函数,然后再在类的构造函数中设置时间间隔   startTimer(50);//单位为毫秒(2)在类的构造函数中设定如 ...