Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何验证浏览器是否位于服务器端而没有窗口引用?_Javascript_Angular_Server Side Rendering_Angular Universal - Fatal编程技术网

Javascript 如何验证浏览器是否位于服务器端而没有窗口引用?

Javascript 如何验证浏览器是否位于服务器端而没有窗口引用?,javascript,angular,server-side-rendering,angular-universal,Javascript,Angular,Server Side Rendering,Angular Universal,我正在研究角度应用程序,它与angular universal进行了SSR集成。在这个项目中,我们为一些步进器(bs stepper)使用了一个插件。问题在于此插件具有如下多窗口引用: var matches = window.Element.prototype.matches; 我需要一种验证是否为浏览器的方法,一种尝试过的多选项,如“检测”和“导航器”。您可以使用isPlatformBrowser 组件。ts import { PLATFORM_ID } from '@angular/co

我正在研究角度应用程序,它与angular universal进行了SSR集成。在这个项目中,我们为一些步进器(bs stepper)使用了一个插件。问题在于此插件具有如下多窗口引用:

var matches = window.Element.prototype.matches;

我需要一种验证是否为浏览器的方法,一种尝试过的多选项,如“检测”和“导航器”。

您可以使用
isPlatformBrowser

组件。ts

import { PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';

//...
private isBrowser: boolean;

constructor( @Inject(PLATFORM_ID) platformId: Object) {
   this.isBrowser = isPlatformBrowser(platformId);
  }
}

您还可以尝试在
server.ts中使用
domino
,当您无法控制浏览器元素的使用位置时(例如,当使用3rs party Library时)

如果您需要知道
window
是否存在,只需检查
window
。也就是说,节点将始终具有名为
process
的全局变量,该变量通常不在浏览器中。