javascript - 如何验证服务器端的浏览器是否没有窗口引用?

标签 javascript angular server-side-rendering angular-universal

我正在开发将 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/

相关文章:

javascript - 通过 .text() 存储变量不是最新的

javascript - 基于背景颜色的倒置 Logo

javascript - ReactJS 是否为服务器端呈现的应用程序两次呈现应用程序? (重复代码)

javascript - 使用服务器端和客户端渲染的单页 ReactJS 应用程序?

c# - 从 c# 后面的代码编写页面加载 javascript 函数

javascript - 使用 CSS 或 jQuery 搜索并突出显示文本背景

css - 如何将样式应用到应用了 Angular 条件的 [readonly] 输入元素?

Angular 4 & RxJS : race conditions, 服务初始化顺序和准备情况

javascript - 使用 NGRX 存储测试异步 Angular 验证器

javascript - Meteor + Vue 仅运行时构建