Javascript 如何验证浏览器是否位于服务器端而没有窗口引用?
我正在研究角度应用程序,它与angular universal进行了SSR集成。在这个项目中,我们为一些步进器(bs stepper)使用了一个插件。问题在于此插件具有如下多窗口引用: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
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
的全局变量,该变量通常不在浏览器中。