JavaScript 如何检查当前运行环境是否为浏览器

JavaScript 如何检查当前运行环境是否为浏览器

在本文中,我们将看到如何检测JavaScript代码运行的运行环境。假设你正在使用Node.js构建应用程序,并且需要将该代码包含在将在浏览器上运行的网页中。这将导致Node应用程序的一些功能在浏览器上不起作用,反之亦然。

方法: 没有函数、方法或属性可以检测运行环境是否为浏览器,但是我们可以进行一些检测来确定脚本是否在浏览器中运行。 JavaScript代码可以运行的一些环境包括Node.js、Service Workers或浏览器。

每种环境都有不同的条件。我们将创建一个函数,该函数将返回一个布尔值,指示环境是否为浏览器。在此函数中:

  • 首先,我们检查process的类型是否为“object”,并且检查require的类型是否为函数,使用typeof运算符。当两个条件都为真时,环境是Node.js,因此我们返回false。
  • 我们类似地检查环境是否为service worker,检查importScripts的类型是否为函数。如果条件匹配,我们再次返回false。
  • 最后,我们检查window的类型是否等于“object”。条件为真表示环境为浏览器,我们从函数中返回true。

语法:

function isBrowser() {

    // Check if the environment is Node.js
    if (typeof process === "object" &&
        typeof require === "function") {
        return false;
    }

    // Check if the environment is a
    // Service worker
    if (typeof importScripts === "function") {
        return false;
    }

    // Check if the environment is a Browser
    if (typeof window === "object") {
        return true;
    }
}

示例:

<!DOCTYPE html> 
<html> 
  
<body> 
    <h1>Hello Geeks</h1> 
  
    <script> 
        function isBrowser() { 
  
            // Check if the environment is Node.js 
            if (typeof process === "object" && 
                typeof require === "function") { 
                return false; 
            } 
  
            // Check if the environment is 
            // a Service worker 
            if (typeof importScripts === "function") { 
                return false; 
            } 
  
            // Check if the environment is a Browser 
            if (typeof window === "object") { 
                return true; 
            } 
        } 
  
        // Calling a alert if the environment is Browser 
        if (isBrowser()) { 
            alert("The Environment is Browser....") 
        } 
    </script> 
</body> 
  
</html> 

输出结果:

JavaScript 如何检查当前运行环境是否为浏览器

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程