【问题标题】:redirect my IE visitors to a different page将我的 IE 访问者重定向到不同的页面
【发布时间】:2013-12-08 18:39:07
【问题描述】:

我做了一个网站,其中 index.php 是一个简短的动画系列文本(不是我的想法,我建议不要这样做,但我不是老板)但无论如何,我对这个动画的问题是它不受支持通过 IE 并且它也没有响应,所以它在手机中看起来也很糟糕。

我的问题是,这里有没有人听说过我可以使用可以嗅探浏览器(IE > 1、Android、IO 等)并将它们重定向到同一站点内的 home.php 的脚本或 jquery?

也许是一个带有标题的 PHP 脚本:位置...我不知道,什么都没有。

附言我已经尝试了我在堆栈溢出中读到的所有内容,但没有任何效果。

这是我得到的最接近的回复,但不是我想要的

<script type="text/javascript">

  var sBrowser, sUsrAg = navigator.userAgent;

  if(sUsrAg.indexOf("Chrome") > -1) {
    sBrowser = "Google Chrome";
  } else if (sUsrAg.indexOf("Safari") > -1) {
    sBrowser = "Apple Safari";
  } else if (sUsrAg.indexOf("Opera") > -1) {
    sBrowser = "Opera";
  } else if (sUsrAg.indexOf("Firefox") > -1) {
    sBrowser = "Mozilla Firefox";
  } else if (sUsrAg.indexOf("MSIE") > -1) {
    sBrowser = "Microsoft Internet Explorer";
  }

  alert("You are using: " + sBrowser);
</script>

提前致谢

【问题讨论】:

  • 作为一个忠告,IE11的userAgent字符串中不再有MSIE
  • 嗯,很有趣。谢谢,我不知道。他们把它改成别的了吗? IE,IE11,...等? ***edit**** 我取下 MSIE 并留下一个空白区域,它响应正确。警报框说它在其中检测到 Int Exp。我现在将尝试使用 window.location 进行重定向,如果可行,我会将答案归功于 Markasoftware……但如果其他人有更好、更实用或更有效的解决方案,我愿意听取他们的意见。
  • 最好不要检查浏览器,而是检查支持动画
  • Grundy - 我做到了。但这一切都是用 PURE CSS 完成的,特别是那些与 IE 不兼容的过渡
  • @user32642 为此使用像moderniz这样的库

标签: javascript php jquery internet-explorer redirect


【解决方案1】:

您的浏览器识别工作正常,只需要使用javascript重定向。

所以大致如下:

var sUsrAg = navigator.userAgent;

if(sUsrAg.indexOf("Mobile") > -1) {
    window.location = '/unsupportedpagemobile.html';
} else if (sUsrAg.indexOf("MSIE") > -1) {
    window.location = '/unsupportedpageie.html';
}

</script>

【讨论】:

  • 布赖恩,这很有帮助,对不起,我不能给你一个向上的箭头(它说的代表不够),但无论如何,这解决了这个问题。它正在重定向,但无论使用何种浏览器,它都会重定向。我需要在 Chrome、Firefox、Safari 和 Opera 中显示页面
【解决方案2】:

大多数 CSS 动画在现代版本的 Internet Explorer 中处理得很好。事实上,Internet Explorer 在许多竞争对手之前就支持无前缀属性。由于供应商前缀的不平衡使用,您的 CSS 动画可能无法在 IE 中运行。您是否只定位-webkit-transition-moz-transition 之类的内容,而忘记包含transition

您的动画在早期版本的 Internet Explorer 中不起作用,除非您使用 jQuery 使用 $.fn.animate 对它们进行 polyfill 以实现类似的行为。考虑到您正在执行的动画类型,这可能会也可能不会 - 如果它只是滑动文本并淡入/淡出,那么对于旧版本的 IE,您肯定可以实现相同的效果。

最后一个选项是创建特定于 IE 的conditional comments 并在其中放置一个脚本,以将用户重新定位到另一种体验。不要进行浏览器嗅探;你要把 IE11 的用户(它可以处理你的现代体验)送走,这是没有意义的。相反,请使用您希望定位的浏览器提供的功能;例如条件 cmets。

<!--[if lte IE 9]>
  <script>
    /*
      In this space we can do one of two things:
        1) Redirect user to an alternative experience with window.location, or
        2) Provide animations via jQuery .animate method.
    */
  </script>
<![endif]-->

【讨论】:

    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    相关资源
    最近更新 更多