我最近将我的应用程序从 GWT 2.5 升级到了 GWT 2.7。这导致我放弃了对 IE6 和 IE7 的支持。
我想向使用 IE6 或 IE7 的用户发出警告,警告他们的浏览器已过时且无法正常工作。目前,如果您使用其中一种浏览器访问应用程序,您会看到一个空白屏幕。
我知道有几种方法可以一起破解某些东西,但我更愿意使用GWT 方式,而不是一些破解。不支持的浏览器是否有 GWT 挂钩?
选项(黑客)一
把它放到我的 main.html 中:
if(document.documentMode === 6 || document.documentMode === 7){
myUnsupportedBrowserWarningFunction();
}
这样做的潜在问题是,如果有人使用 GWT 无法识别且我无法识别的浏览器(移动歌剧?其他浏览器),他们仍然会得到一个空白页面。
选项(hack)二
GWT 在此处查找已编译的 JS:
gwt/myApp/ASDFKLSDJFLSFDJSLDFJLSJDFSDES.cache.js
当有人使用不受支持的浏览器时,请求以下内容(但未找到):
gwt/myApp/undefined.cache.js
可以在那里创建undefined.cache.js
和放置不受支持的浏览器代码。这显然是一个脆弱的解决方案,并且会随着未来的 GWT 更新而中断。
选项三
最近的补丁(在 GWT 2.7 中可用)允许您在 GWT 无法检测到浏览器时提供默认排列(例如 safari),并且通过延迟绑定,您可以显示一个警告,指出所提供的应用程序可能无法正常工作,因为浏览器通常不受支持由 GWT 提供。
——J。
我不想为不受支持的浏览器设置默认排列。我希望该站点无法运行并显示警告。所以这个解决方案并没有真正提供我正在寻找的东西。
类似的问题和帖子
- 对于 2009 年的早期版本的 GWT,也提出了同样的问题。我希望 GWT 在过去 6 年中添加了某种钩子或最佳实践。
- 有关设置默认(后备)排列的更多信息