【发布时间】:2015-02-25 18:41:05
【问题描述】:
我最近将我的应用程序从 GWT 2.5 升级到了 GWT 2.7。这导致我放弃了对 IE6 和 IE7 的支持。
我想向使用 IE6 或 IE7 的用户发出警告,警告他们的浏览器已过时且无法运行。目前,如果您使用其中一种浏览器访问应用程序,您会看到一个空白屏幕。
我知道有几种方法可以一起破解某些东西,但我更愿意使用 GWT 方式,而不是一些破解。不支持的浏览器是否有 GWT 挂钩?
选项(黑客)一
把它放到我的 main.html 中:
if(document.documentMode === 6 || document.documentMode === 7){
myUnsupportedBrowserWarningFunction();
}
这样做的潜在问题是,如果有人使用 GWT 无法识别且我无法识别的浏览器(移动歌剧?其他浏览器),他们仍然会得到一个空白页面。
选项(黑客)二
GWT 在这里寻找编译好的 JS:
gwt/myApp/ASDFKLSDJFLSFDJSLDFJLSJDFSDES.cache.js
当有人使用不受支持的浏览器时,会请求(但未找到)以下内容:
gwt/myApp/undefined.cache.js
可以创建undefined.cache.js 并将您不受支持的浏览器代码放在那里。这显然是一个脆弱的解决方案,并且会随着未来的 GWT 更新而中断。
选项三
最近的补丁(在 GWT 2.7 中可用)允许您提供默认的 如果 GWT 无法检测到浏览器并且使用 延迟绑定,您可以显示提供的应用程序可能不会显示的警告 正常工作,因为 GWT 通常不支持浏览器。
--J.
我不想为不受支持的浏览器设置默认排列。我希望该站点无法运行并显示警告。所以这个解决方案并没有真正提供我正在寻找的东西。
类似问题和帖子
- The same question was asked for an eariler version of GWT in 2009。我希望 GWT 在过去 6 年中添加了某种钩子或最佳实践。
- More info on setting a default (fallback) permutation
【问题讨论】:
标签: gwt browser-detection gwt-2.7