检测是否是标准浏览器环境 函数

Posted xiaolantian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检测是否是标准浏览器环境 函数相关的知识,希望对你有一定的参考价值。

实现思路:根据当前环境是否存在某个对象来判别,如果光存在还不足以判别就再判断属性,最终将结果返回。

	/**
	 * Determine if we‘re running in a standard browser environment
	 *
	 * This allows axios to run in a web worker, and react-native.
	 * Both environments support XMLHttpRequest, but not fully standard globals.
	 *
	 * web workers:
	 *  typeof window -> undefined
	 *  typeof document -> undefined
	 *
	 * react-native:
	 *  navigator.product -> ‘ReactNative‘
	 * nativescript
	 *  navigator.product -> ‘NativeScript‘ or ‘NS‘
	 */
	function isStandardBrowserEnv() {
	  if (typeof navigator !== ‘undefined‘ && (navigator.product === ‘ReactNative‘ ||
	                                           navigator.product === ‘NativeScript‘ ||
	                                           navigator.product === ‘NS‘)) {
	    return false;
	  }
	  return (
	    typeof window !== ‘undefined‘ &&
	    typeof document !== ‘undefined‘
	  );
	}

代码来源:axios源码
技术图片


以上是关于检测是否是标准浏览器环境 函数的主要内容,如果未能解决你的问题,请参考以下文章

十条实用的jQuery代码片段

是否有符合标准的方法来检测 C 标准库中的函数是否通过内部/内置实现?

Rails 浏览器检测方法

Python代码阅读(第13篇):检测列表中的元素是否都一样

客户端检测

DexGuard 篡改和环境检测有用吗?