问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JS怎样检测浏览器内的脚本

发布网友 发布时间:2022-04-20 19:38

我来回答

2个回答

懂视网 时间:2022-05-15 09:16

这次给大家带来JS怎样检测浏览器内的脚本,JS检测浏览器内脚本的注意事项有哪些,下面就是实战案例,一起来看一下。

以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。

var client = function(){ 
 // 呈现引擎 
 var engine = { 
 ie: 0, 
 gecko: 0, 
 webkit: 0, 
 khtml: 0, 
 opera: 0, 
 // 完整的版本号 
 ver: null
 }; 
 
 // 浏览器 
 var browser = { 
 // 主要浏览器 
 ie: 0, 
 firefox: 0, 
 safari: 0, 
 konq: 0, 
 opera: 0, 
 chrome: 0, 
 // 具体的版本号 
 ver: null
 }; 
 // 平台、设备和操作系统 
 var system = { 
 win: false, 
 mac: false, 
 x11: false, 
 
 // 移动设备 
 iphone: false, 
 ipod: false, 
 ipad: false, 
 ios: false, 
 android: false, 
 nokiaN: false, 
 winMobile: false, 
 
 // 游戏系统 
 wii: false, 
 ps: false
 }; 
 
 // 检测呈现引擎和浏览器 
 var ua = navigator.userAgent; 
 if (window.opera){ 
 engine.ver = browser.ver = window.opera.version(); 
 engine.opera = browser.opera = parseFloat(engine.ver); 
 } 
 else if (/AppleWebKit/(S+)/.test(ua)){ 
 engine.ver = RegExp["$1"]; 
 engine.webkit = parseFloat(engine.ver); 
 
 // 确定是Chroeme还是Safari 
 if (/Chrome/(S+)/.test(ua)){ 
 browser.ver = RegExp["$1"]; 
 browser.chrome = parseFloat(browser.ver); 
 } else if (/Version/(S+)/.test(ua)){ 
 browser.ver = RegExp["$1"]; 
 browser.safari = parseFloat(browser.ver); 
 } 
 else { 
 // 近似地确定版本号 
 var safariVersion = 1; 
 if (engine.webkit < 100){ 
 safariVersion = 1; 
 } else if (engine.webkit < 312){ 
 safariVersion = 1.2; 
 } else if (engine.webkit < 412){ 
 safariVersion = 1.3; 
 } else { 
 safariVersion = 2; 
 } 
 
 browser.safari = browser.ver = safariVersion; 
 } 
 } 
 else if (/KHTML/(S+)/.test(ua) || /Konqueror/([^;]+)/.test(ua)){ 
 engine.ver = browser.ver = RegExp["$1"]; 
 engine.khtml = browser.konq = parseFloat(engine.ver); 
 } 
 else if (/rv:([^)]+)) Gecko/d{8}/.test(ua)){ 
 engine.ver = RegExp["$1"]; 
 engine.gecko = parseFloat(engine.ver); 
 
 // 确定是不是Firefox 
 if (/Firefox/(S+)/.test(ua)){ 
 browser.ver = RegExp["$1"]; 
 browser.firefox = parseFloat(browser.ver); 
 } 
 } 
 else if (/MSIE ([^;]+)/.test(ua)){ 
 engine.ver = browser.ver = RegExp["$1"]; 
 engine.ie = browser.ie = parseFloat(engine.ver); 
 } 
 
 // 检测浏览器 
 browser.ie = engine.ie; 
 browser.opera = engine.opera; 
 
 // 检测平台 
 var p = navigator.platform; 
 system.win = p.indexOf("Win") == 0; 
 system.mac = p.indexOf("Mac") == 0; 
 system.x11 = (p == "x11") || (p.indexOf("Linux") == 0); 
 
 // 检测windows操作系统 
 if(system.win){ 
 if(/win(?:dows )?([^do]{2})s?(d+.d+)?/.test(ua)){ 
 if(RegExp["$1"] == "NT"){ 
 switch(RegExp["$2"]){ 
 case "5.0": 
 system.win = "2000"; 
 break; 
 case "5.1": 
 system.win = "XP"; 
 break; 
 case "6.0": 
 system.win = "Vista"; 
 break; 
 case "6.1": 
 system.win = "7"; 
 break; 
 default: 
 system.win = "NT"; 
 break; 
 } 
 } 
 else if(RegExp["$1"] == "9x"){ 
 system.win = "ME"; 
 } 
 else{ 
 system.win = RegExp["$1"]; 
 } 
 } 
 } 
 
 // 移动设备 
 system.iphone = ua.indexOf("iPhone") > -1; 
 system.ipod = ua.indexOf("iPod") > -1; 
 system.ipad = ua.indexOf("iPad") >-1; 
 system.nokiaN = ua.indexOf("NokiaN") > -1; 
 
 // windows mobile 
 if(system.win == "CE"){ 
 system.winMobile = system.win; 
 } 
 else if(system.win == "Ph" ){ 
 if(/Windows Phone OS (d+.d+)/.test(ua)){ 
 system.win = "Phone"; 
 system.winMobile = parseFloat(RegExp["$1"]); 
 } 
 } 
 
 // 检测IOS版本 
 if(system.mac && ua.indexOf("Mobile")> -1){ 
 if(/CPU (?:Phone )?OS (d+_d+)/.test(ua)){ 
 system.ios = parseFloat(RegExp.$1.replace("_",".")); 
 } 
 else{ 
 system.ios = 2; 
 // 不能真正检测出来,所以只能猜测 
 } 
 } 
 
 // 检测Android版本 
 if(/Android (d+.d+)/.test(ua)){ 
 system.android = parseFloat(RegExp.$1); 
 } 
 
 // 游戏系统 
 system.wii = ua.indexOf("Wii") > -1; 
 system.ps = /playstation/i.test(ua); 
 
 // 返回这些对象 
 return { 
 engine: engine, 
 browser: browser, 
 system: system 
 }; 
 
 // console.log(engine); 
 // console.log(browser); 
 // console.log(system); 
}();

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

JS自执行函数与jQuery扩展使用方法

拦截器判断token失效跳转后的操作

热心网友 时间:2022-05-15 06:24

/*************************************************************************
File Name: detect.js
Create Date:
Author:
Description: detect browser and operating system
***********************************************************************/
var sUserAgent = navigator.userAgent;
var fAppVersion = parseFloat(navigator.appVersion);
function compareVersions(sVersion1, sVersion2) {
var aVersion1 = sVersion1.split(".");
var aVersion2 = sVersion2.split(".");
if (aVersion1.length > aVersion2.length) {
for (var i=0; i < aVersion1.length - aVersion2.length; i++) {
aVersion2.push("0");
}
} else if (aVersion1.length < aVersion2.length) {
for (var i=0; i < aVersion2.length - aVersion1.length; i++) {
aVersion1.push("0");
}
}
for (var i=0; i < aVersion1.length; i++) {
if (aVersion1[i] < aVersion2[i]) {
return -1;
} else if (aVersion1[i] > aVersion2[i]) {
return 1;
}
}
return 0;
}
var isOpera = sUserAgent.indexOf("Opera") > -1;
var isMinOpera4 = isMinOpera5 = isMinOpera6 = isMinOpera7 = isMinOpera7_5 = false;
if (isOpera) {
var fOperaVersion;
if(navigator.appName == "Opera") {
fOperaVersion = fAppVersion;
} else {
var reOperaVersion = new RegExp("Opera (\\d+\\.\\d+)");
reOperaVersion.test(sUserAgent);
fOperaVersion = parseFloat(RegExp["$1"]);
}
isMinOpera4 = fOperaVersion >= 4;
isMinOpera5 = fOperaVersion >= 5;
isMinOpera6 = fOperaVersion >= 6;
isMinOpera7 = fOperaVersion >= 7;
isMinOpera7_5 = fOperaVersion >= 7.5;
}
var isKHTML = sUserAgent.indexOf("KHTML") > -1
|| sUserAgent.indexOf("Konqueror") > -1
|| sUserAgent.indexOf("AppleWebKit") > -1;
var isMinSafari1 = isMinSafari1_2 = false;
var isMinKonq2_2 = isMinKonq3 = isMinKonq3_1 = isMinKonq3_2 = false;
if (isKHTML) {
isSafari = sUserAgent.indexOf("AppleWebKit") > -1;
isKonq = sUserAgent.indexOf("Konqueror") > -1;
if (isSafari) {
var reAppleWebKit = new RegExp("AppleWebKit\\/(\\d+(?:\\.\\d*)?)");
reAppleWebKit.test(sUserAgent);
var fAppleWebKitVersion = parseFloat(RegExp["$1"]);
isMinSafari1 = fAppleWebKitVersion >= 85;
isMinSafari1_2 = fAppleWebKitVersion >= 124;
} else if (isKonq) {
var reKonq = new RegExp("Konqueror\\/(\\d+(?:\\.\\d+(?:\\.\\d)?)?)");
reKonq.test(sUserAgent);
isMinKonq2_2 = compareVersions(RegExp["$1"], "2.2") >= 0;
isMinKonq3 = compareVersions(RegExp["$1"], "3.0") >= 0;
isMinKonq3_1 = compareVersions(RegExp["$1"], "3.1") >= 0;
isMinKonq3_2 = compareVersions(RegExp["$1"], "3.2") >= 0;
}
}
var isIE = sUserAgent.indexOf("compatible") > -1
&& sUserAgent.indexOf("MSIE") > -1
&& !isOpera;
var isMinIE4 = isMinIE5 = isMinIE5_5 = isMinIE6 = false;
if (isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(sUserAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
isMinIE4 = fIEVersion >= 4;
isMinIE5 = fIEVersion >= 5;
isMinIE5_5 = fIEVersion >= 5.5;
isMinIE6 = fIEVersion >= 6.0;
}
var isMoz = sUserAgent.indexOf("Gecko") > -1
&& !isKHTML;
var isMinMoz1 = sMinMoz1_4 = isMinMoz1_5 = false;
if (isMoz) {
var reMoz = new RegExp("rv:(\\d+\\.\\d+(?:\\.\\d+)?)");
reMoz.test(sUserAgent);
isMinMoz1 = compareVersions(RegExp["$1"], "1.0") >= 0;
isMinMoz1_4 = compareVersions(RegExp["$1"], "1.4") >= 0;
isMinMoz1_5 = compareVersions(RegExp["$1"], "1.5") >= 0;
}
var isNS4 = !isIE && !isOpera && !isMoz && !isKHTML
&& (sUserAgent.indexOf("Mozilla") == 0)
&& (navigator.appName == "Netscape")
&& (fAppVersion >= 4.0 && fAppVersion < 5.0);
var isMinNS4 = isMinNS4_5 = isMinNS4_7 = isMinNS4_8 = false;
if (isNS4) {
isMinNS4 = true;
isMinNS4_5 = fAppVersion >= 4.5;
isMinNS4_7 = fAppVersion >= 4.7;
isMinNS4_8 = fAppVersion >= 4.8;
}
var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC")
|| (navigator.platform == "Macintosh");
var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
var isWin95 = isWin98 = isWinNT4 = isWin2K = isWinME = isWinXP = false;
var isMac68K = isMacPPC = false;
var isSunOS = isMinSunOS4 = isMinSunOS5 = isMinSunOS5_5 = false;
if (isWin) {
isWin95 = sUserAgent.indexOf("Win95") > -1
|| sUserAgent.indexOf("Windows 95") > -1;
isWin98 = sUserAgent.indexOf("Win98") > -1
|| sUserAgent.indexOf("Windows 98") > -1;
isWinME = sUserAgent.indexOf("Win 9x 4.90") > -1
|| sUserAgent.indexOf("Windows ME") > -1;
isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1
|| sUserAgent.indexOf("Windows 2000") > -1;
isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1
|| sUserAgent.indexOf("Windows XP") > -1;
isWinNT4 = sUserAgent.indexOf("WinNT") > -1
|| sUserAgent.indexOf("Windows NT") > -1
|| sUserAgent.indexOf("WinNT4.0") > -1
|| sUserAgent.indexOf("Windows NT 4.0") > -1
&& (!isWinME && !isWin2K && !isWinXP);
}
if (isMac) {
isMac68K = sUserAgent.indexOf("Mac_68000") > -1
|| sUserAgent.indexOf("68K") > -1;
isMacPPC = sUserAgent.indexOf("Mac_PowerPC") > -1
|| sUserAgent.indexOf("PPC") > -1;
}
if (isUnix) {
isSunOS = sUserAgent.indexOf("SunOS") > -1;
if (isSunOS) {
var reSunOS = new RegExp("SunOS (\\d+\\.\\d+(?:\\.\\d+)?)");
reSunOS.test(sUserAgent);
isMinSunOS4 = compareVersions(RegExp["$1"], "4.0") >= 0;
isMinSunOS5 = compareVersions(RegExp["$1"], "5.0") >= 0;
isMinSunOS5_5 = compareVersions(RegExp["$1"], "5.5") >= 0;
}
}
js检测浏览器的基本信息 如:版本 内核 。。。

(function (win, doc, nav){/** * @des 浏览器判断脚本,兼容cmd规范 */var ua = nav.userAgent.toLowerCase (), key ={ ie : "msie", sf : "safari", tt : "tencenttraveler"},// 正则列表reg ={ browser : "(" + key.ie + "|" + key.sf + "|firefox|chrome...

aippt自动生成工具

随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图、条形...

js 检测在谷歌浏览器上是否存在IE tab插件

用navigator.plugins试试吧 应该能解决 代码:var plugins = navigator.pluginsfor(var i=0;i&lt;navigator.plugins.length;i++){ alert(navigator.plugins[i].name)}

在浏览器调用js脚本会不会被服务器发现?

你的脚本内容不会被服务器发现(也发现不了),但因为你使用脚本而产生的异常请求会被发现,例如你的点击脚本在1秒钟内点击了上千次造成上千次的服务器提交请求,这就异常了,肯定会被发现的,不过一般来讲服务器都有屏蔽的技术处理,会自动忽略单一IP下过多的请求。

怎样用JS判断各浏览器调用各自的css文件?

通俗点,条件注释就是一些if判断,但这些判断不是在脚本里执行的,而是直接在html代码里执行的,比如:&lt;!--[if IE]&gt; 这里是正常的html代码 &lt;![endif]--&gt; 1,条件注释的基本结构和HTML的注释(&lt;!-- --&gt;)是一样的。因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们。2,IE将会根据...

怎样用JS准确的判断浏览器刷新事件

alert("这是一个关闭操作而非刷新"); window.event.returnValue = ""; //此处放你想要操作的代码 }else{ alert("这是一个刷新操作而非关闭"); } }

JS 获取浏览器内核

var explorer = window.navigator.userAgent;//ie if (explorer.indexOf("MSIE") &gt;= 0) { alert("ie");}//firefox else if (explorer.indexOf("Firefox") &gt;= 0) { alert("Firefox");}//Chromeelse if(explorer.indexOf("Chrome") &gt;= 0){ alert("Chrome");}//Operaelse ...

js模版引擎内运行js脚本

1、第一种方法,通过设置定时检查,来判断内容是否完成载入。在 {{data.content}} 中放一个 “标识”。例如:&lt;!-- 你正常的 content 内容 --&gt;。。。&lt;!-- 特殊的标识 --&gt;然后在整个页面的脚本中,加一个定时检查器 (下面代码放在整个页面的 head 里):var flag = false; // 一个状态标记...

浏览器执行js的过程?

浏览器怎么执行js的浏览器执行js的方法:在浏览器地址栏直接执行JavaScript脚本,也可以在浏览器的地址栏中输入JavaScript语句,由浏览器直接执行。如输入:javascript:alert(200*75)在微信浏览器里面开启H5网页中执行JS调起支付在微信浏览器里面开启H5网页中执行JS调起支付 在微信浏览器中访问你制作的HTML5...

js如何判断浏览器

简单的方法就是判断 navigator.userAgent,正则去匹配 但是鉴于这个属性,浏览器厂商是可以随意修改的,某些无良厂商(比如360)就为了不被人识别出,随意修改自己的userAgent。比较靠谱的方法是采用 浏览器特性检测,可以google或baidu相关内容

js代码能否实现强制开启浏览器的webgl

webgl需要浏览器支持 js不能调用任何浏览器不提供接口的功能 由于启用webgl这个功能在低版本浏览器中需要用户手动开启实现性功能,浏览器并未提供接口供js使用,来开启此功能,所以不能通过js强制开启

浏览器内核在线检测 x浏览器脚本 手机浏览器脚本 via浏览器脚本大全 浏览器检测 检测ie是不是默认浏览器 手机QQ浏览器关闭网页检测 我的浏览器 浏览器安全检查已通过
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
车是我们夫妻共同买的他把车转移了怎么办? 龙江银行卡开通网银后存钱后是否可以买东西 车架号可以查出来是不是事故车吗? ...阴历8月15晚上8点多出生,我想请教高人看一下我的命运谢谢了_百度知 ... ...我1976年11月1日凌晨五点多出生2008年的运程如何?谢谢 请教高人,我老公1973年2月1日,晚10点之后出生,家里可以养鱼吗?_百度... 黄宝鸡退休了吗? 黄宝鸡长什么样子黄宝鸡什么意思 黄宝鸡是什么意思? ...在淘宝上买女包,麦包包、酷包包这些店我经常光顾,但是款式不大喜欢... JS脚本语言是干什么用的 浏览器怎么添加js格式的脚本 怎么开启浏览器的js脚本功能 请给姓朱的小男孩起名字 父亲姓朱,给孩子取个好名字 给孩子起名字,姓朱,叫朱玉什么好听 想给朱姓男宝宝起名 姓朱,帮忙给孩子起名字!! 在AI里面总有一个大框,怎么样去除呢 AI ,自己画的图和嵌入的图片,只想要一部分显示,... AI怎么擦除画多余的部分? AI里我用打印拼贴工具在画板上点击了,它就在画板... AI画板上有个固定的外框选不中 删不掉又不是出血是... ai软件怎么删除页面? 怎样去掉AI里画板名称“画板1.2.3,副本”,导出文件... 求问: AI画板删除 但是原来画板的底色还在。见图... AI 软件 怎么清除多余的部分 AI illustrator 如何能删掉边缘多余的部分 Ai里两个画布怎么删除一个? ai怎么删除指定区域 在浏览器调用js脚本会不会被服务器发现? 如何让浏览器加载js脚本 如何将javascript脚本在IE浏览器中运行? 您的浏览器禁用了JS脚本运行,请启用该功能,请问... 我在网页中加入JS脚本后,运行时浏览器自动阻止了J... 如何让浏览器中的每个网页都执行我写的一个js脚本? 怎么让浏览器打开的网页执行一段js脚本 怎样在IE浏览器中开启javascript脚本功能 win7浏览器如何启用javascript脚本 把一个网页下载下来,里面会有很多的js脚本,我想... js 网页脚本 浏览器禁止了JS脚本运行是怎么回事?怎么启动啊 如何禁止浏览器运行 JavaScript 脚本 华为畅玩7x报价多少钱 华为荣耀畅享7x多少钱 华为畅玩7x参数配置 请问当初华为荣耀畅玩7x,新机多少钱,谢谢 华为荣耀7x多少钱 华为荣耀7x价格,参数 华为畅享7X多少钱 7X多少钱华为荣耀畅玩7X价格介绍