当前位置: 首页 > news >正文

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>";
        }
    }
}

 

  

相关文章:

  • 3、python自动化运维——定制业务质量报表
  • ***详解账号泄露:全球约1亿用户已泄露
  • 【mysql】mysql 配置
  • 怎样检测内存泄露
  • python之旅九【第九篇】socket
  • 【C#|.NET】利用FastDFS打造分布式文件系统
  • [LeetCode] Binary Tree Preorder Traversal 二叉树的先序遍历
  • 实用算法实现-第 24 篇 高精度整数运算
  • PHP Mysql-插入多条数据
  • Windows窗体
  • DataWorks新手引导(持续更新)
  • TOP语句放到表值函数外,效率异常低下
  • 产品经理教你玩转阿里云负载均衡SLB系列(一):快速入门--什么是负载均衡
  • Enum一点使用总结
  • 路由器相关参数及设置
  • 【技术性】Search知识
  • android图片蒙层
  • Angular4 模板式表单用法以及验证
  • Apache的基本使用
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • FastReport在线报表设计器工作原理
  • IP路由与转发
  • JavaWeb(学习笔记二)
  • Laravel Mix运行时关于es2015报错解决方案
  • Laravel 实践之路: 数据库迁移与数据填充
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • python_bomb----数据类型总结
  • 聊聊sentinel的DegradeSlot
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • postgresql行列转换函数
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (C语言)字符分类函数
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)终结任务
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (原)Matlab的svmtrain和svmclassify
  • (转)四层和七层负载均衡的区别
  • (转载)Linux 多线程条件变量同步
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .form文件_一篇文章学会文件上传
  • .gitignore文件—git忽略文件
  • .htaccess 强制https 单独排除某个目录
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net core 连接数据库,通过数据库生成Modell
  • .net web项目 调用webService
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • /bin、/sbin、/usr/bin、/usr/sbin