我有疑问。
我必须将IE用户重定向到其他网站,从IE6到IE9这个代码工作得非常好。
<!--[if IE]><script type="text/javascript">window.location = "google.com";</script><![endif]-->
此代码对IE 10非常有用
<script type="text/javascript">if (navigator.appName == 'Microsoft Internet Explorer'){self.location = "google.com"}</script>
但是我无法找到IE11的任何解决方案 - 在这个浏览器中我的网站没有重定向。
我真的在搜索更多时间这个解决方案,但我无法找到任何想法。
也许您知道如何只编写一个脚本来将所有IE浏览器重定向到其他网站?
非常感谢!
答案 0 :(得分:6)
根据您的意见,浏览器检测不是可行的方法。
相反,请使用特征检测。在这种情况下:
var test = document.createElement('video');
if( !test.canPlayType) { /* HTML5 video not supported at all */ }
else if( !test.canPlayType("video/whatever")) {
// replace "whatever" with the correct MIME type
// if that type is not supported, do something here
}
else { /* you're all good? */ }
答案 1 :(得分:2)
众所周知,浏览器检测非常不可靠,根本不是未来的证据 正如您首先遇到此问题所证明的那样。
相反,检测浏览器功能并根据这些功能提供所需的功能。
查看以下资源:
如果您 执行此操作,则可以使用以下任何一种方法:
例如:
if (!!navigator.userAgent.match(/Trident.*rv\:11\./)) {self.location = "google.com"}
答案 2 :(得分:0)
回应法拉利粉丝的观点......你将IE用户放在不同网站上的许多旧理由都不再有效。
无论如何,根据我的经验,随着IE11最近的变化,更可靠的浏览器嗅探方法是检查&#34; Trident&#34; navigator.userAgent
中的版本,而不是IE版本。我的是:
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR
3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko
此处列为7.0,与IE11一起首播。 6或更低版本将是其他版本。请记住,IE的发布周期可能会像其他浏览器一样变快,因此您的网站可以处理&#34; Trident / 10.0&#34; (IE 14)不久之后 - 确保你的模式匹配说明了这一点。