参考 [完美]原生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. WINDOWS 同步(Interlocked,InterlockedExchangeAdd,Slim读/写锁,WaitForSingleObject,CreateWaitableTimer等等)

    NOTE0 在以下两种基本情况下,线程之间需要相互通信: 需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性: 一个线程需要通知其它线程某项任务已经完成 1.原子访问:Interlocked ...

  2. 学习鸟哥的Linux私房菜笔记(10)——bash2

    七.命令行表达式 命令行输出--" " 将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,则转义. 双引号不能将 \ $ ` ! 符号的特殊功能禁止 命令行输出--' ...

  3. 使用RpcLite构建SOA/Web服务(Full .Net Framework)

    使用RpcLite构建SOA/Web服务(Full .Net Framework) SOA框架系列 1. 使用RpcLite构建SOA/Web服务 2. 使用RpcLite构建SOA/Web服务(Fu ...

  4. HDU 3605Escape(缩点+网络流之最大流)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3605 本来打算昨天写两道题的,结果这个题卡住了,最后才发现是最后的推断条件出错了,推断满流的条件应该是 ...

  5. Android Studio 使用教程(二十五)之运行Android Studio工程

    一.Android虚拟设备入口 上期我们使用了Android Studio创建了HeloWorld工程,要想运行该工程,首先需要一个Android虚拟设备来模拟Android程序的运行. 重新打开An ...

  6. WPF 开发自动开机启动程序

    原文:WPF 开发自动开机启动程序 本文告诉大家如何在 WPF 开发一个可以自动启动的程序 本文使用的自动开机启动方法是通过快捷方式放在启动文件夹的方式. 创建快捷方式 /// <summary ...

  7. Jsp bug_001

    报错: The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解 ...

  8. C/C++ 常量的定义与应用(编程中的常量)

    常量一般定义为全局变量,且大写: 1. 字符串常量 const string EXPAND_X = "X+YF"; const string EXPAND_Y = "FX ...

  9. cordova使用cordova-plugin-baidumaplocation插件获取定位

    原文:cordova使用cordova-plugin-baidumaplocation插件获取定位 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m ...

  10. Scala & IntelliJ IDEA:环境搭建、helloworld

      --------------------- 前言 --------------------- 项目关系,希望用Spark GraphX做数据分析及图像展示,但前提是得回spark:spark是基于 ...