参考 [完美]原生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. ets学习

    http://diaocow.iteye.com/blog/1768647 http://www.cnblogs.com/me-sa/archive/2011/08/11/erlang0007.htm ...

  2. 使用JSONlib简单的转换json操作

    在使用jsonlib操作之前 需要引入json及5个依赖包,依赖包版本不能最新,lang与collections有不兼容现象. 官方地址:http://json-lib.sourceforge.net ...

  3. 高并发測试工具webbench

    1.简单介绍 webbench最多能够模拟3万个并发连接去測试server的负载能力.编译和配置简单,仅基于TCP协议上对server进行測试. Webbench也是开放源代码.从代码上看,每一个cl ...

  4. 【codeforces 779A】Pupils Redistribution

    [题目链接]:http://codeforces.com/contest/779/problem/A [题意] 让你把两个组的5个人的数目都变成一样的. 支持交换操作; 问你最少需要交换几次. [题解 ...

  5. 项目构建之maven篇:6.生命周期与插件

    项目生命周期 清理 初始化 编译 測试 打包 部署 三套生命周期 1.clean pre-clean 运行一些须要在clean之前完毕的工作 clean 移除全部上一次构建生成的文件 post-cle ...

  6. 【BZOJ 1030】[JSOI2007]文本生成器

    [题目链接]:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1030 [题意] [题解] /* 先把AC自动机搞出来; 然后利用AC自动机,把 ...

  7. General-Purpose Operating System Protection Profile

    1 Protection Profile Introduction   This document defines the security functionality expected to be ...

  8. 浅谈Linux下各种压缩 解压命令和压缩比率对比

    Linux下压缩.解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式. 比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而 ...

  9. JTextpane 加入的行号

    最近项目需求,在需求JTextPane加入行号等信息,网上找了半天才发现JTextArea加入行号信息.copy正在研究在线程序.他发现自己能够做出改变来改变JTextPane显示行号. 代码: pa ...

  10. Go语言并发

    Go语言并发机制初探   Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序.Go 语言内置了 goroutine 机制,使用goroutine可以快速地开发并发程序, 更好的利用多核处 ...