【问题标题】:How to prevent Angular application from loading in Index.html如何防止 Angular 应用程序在 Index.html 中加载
【发布时间】:2019-03-04 18:03:34
【问题描述】:

我们正在尝试使 Angular 7 应用程序仅在少数特定浏览器列表中工作。如果浏览器不在配置的列表中,我们只需要显示一个简单的 HTML 页面,并停止任何进一步的处理。为此添加了以下代码,并且在默认情况下不支持 Angular 的那些浏览器(例如:IE 8)中可以正常工作。但是,当尝试在现代浏览器(例如:最新版本的 Opera)中复制相同的行为时,它会显示错误页面(不支持浏览器)并进入应用程序登录页面。如何防止这种情况。 (我们不希望在这些特定的浏览器集中导航到登录页面)。下面的代码进入 Index.html

 <script>
   //showing relevant code section only

    BrowserDetect.init();
    //supported browser with old version
    if (BrowserDetect.browser == "MS Edge" && BrowserDetect.version < 13 ||
      BrowserDetect.browser == "Chrome" && BrowserDetect.version < 45 ||
      BrowserDetect.browser == "Safari" && BrowserDetect.version < 10 ||
      BrowserDetect.browser == "Firefox" && BrowserDetect.version < 53
    ) {
      document.write("HTML for old version browsers go here");
    }
    //unsupported browser eg:Opera, IE etc..
    else if (BrowserDetect.browser !== "MS Edge" && BrowserDetect.browser !== "Firefox"
      && BrowserDetect.browser !== "Chrome" && BrowserDetect.browser !== "Safari") {
      document.write("HTML for unsupported browser goes here");
    **//issue: In latest version of Opera Browser the unsupported HTML is shown and the application is getting navigated to the Login screen.  How to prevent further angular application execution from this line**
    }
  </script>

【问题讨论】:

  • 你的appRoutes是什么样子的?
  • 我需要这样做,甚至在角度应用程序初始化之前。旧版浏览器本身不会执行 Angular 代码。

标签: angular browser cross-browser angular7 browser-support


【解决方案1】:

检查main.ts 文件。在这个文件中,Angular 引导应用程序。

可以改成这样:

if (browserOk) {
    platformBrowserDynamic().bootstrapModule(AppModule);
} else {
    // browser unsupported
}

【讨论】:

  • 我们如何将 browserOk 变量从 index.html 传递到 main.ts 文件?
  • @amesh browserOk 只是示例,您可以使用 BrowserDetect 代替。或者使用窗口对象来保存值真/假window['browserOk'] = true/false
  • 我得到了一个变量,例如,但我担心我们如何将浏览器支持信息传递给 maint.ts,以便我们可以防止应用程序引导。而且我们还需要同步执行......对吗?
  • 使用 window 对象将浏览器信息传递给 main.ts。浏览器检测代码在 main.ts 之前执行。我认为同步应该没有问题。
  • 感谢您的帮助。我会检查并更新这个。 +1
猜你喜欢
  • 2012-01-19
  • 1970-01-01
  • 2011-11-24
  • 2010-12-09
  • 1970-01-01
  • 2018-08-18
  • 2015-05-01
  • 1970-01-01
  • 2017-02-01
相关资源
最近更新 更多