【发布时间】: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