在this page(临时位置)我试图检测浏览器是否支持Float64Array,如果不支持重定向到this page, which tells user to use a different browser。但是,重定向似乎不适用于Windows XP 32位上的MSIE 8,因为该错误首先发生在libfreecell-solver.min.js中,该错误仅在此之后加载。
我该如何解决?
答案 0 :(得分:2)
IE浏览器有自己的内置浏览器检测方案,没有其他人采用。我认为,对于任何低于10的IE版本,你可以依赖它。它看起来像这样:
<!--[if gte IE 8]>
<p>You're using a recent version of Internet Explorer.</p>
<![endif]-->
<!--[if lt IE 7]>
<p>Hm. You should upgrade your copy of Internet Explorer.</p>
<![endif]-->
<![if !IE]>
<p>You're not using Internet Explorer.</p>
<![endif]>
您基本上会添加<!--[if lte IE 9]-->
标记,其中包含<script>
标记,以便在您想要向其发送垃圾浏览器的任何地方进行window.location
调用。可能没有你想要的那么优雅,但它至少是可靠的。
摘自此页:http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx
<强>更新强> 查看您的实际脚本,我立即看到一个解析/语法错误。
(function() {
try {
var a = new Float64Array(1);
return; //no need
} catch(e) {
window.location.replace("../../js-fc-solve/incompatible-browser.html");
} // Closing the catch block, but not closing the function block
)();
添加大括号:
(function() {
try {
var a = new Float64Array(1);
return; //no need
} catch(e) {
window.location.replace("../../js-fc-solve/incompatible-browser.html");
} // Closing the catch block
})(); // Close the function block before trying to call the anonymous function
在尝试包含库中包含其他错误之前,可能会也可能不会导致用户重定向。此外,它可能会也可能不会检测到运行库时需要检测到的所有功能。我会说这取决于浏览器(没有讽刺意味)。
如果这不起作用,您可以执行一个中间页面,决定是将用户发送到解算器页面还是显示不兼容的浏览器消息。