我正在开发将 SSR 与 Angular Universal 集成的 Angular 应用程序。在这个项目中,我们使用一些步进器的插件(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);
}
}
当您无法控制浏览器元素的使用位置时(例如,使用 3rs 方库时),您还可以尝试在 server.ts
中使用 domino
关于javascript - 如何验证服务器端的浏览器是否没有窗口引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62270008/