首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE10桌面与地铁的区别

IE10桌面与地铁的区别
EN

Stack Overflow用户
提问于 2012-09-02 14:46:59
回答 3查看 2K关注 0票数 2

我想检测用户何时使用IE10。

我已经搜索了相当多的网络,我发现没有100%的方法可以找出(使用代码)用户是运行在IE10地铁风格还是桌面风格。然后我找到了一些站点,其中有一个检测activeX的记录。

,这是否足以检测麦德龙和桌面?

守则如下:

代码语言:javascript
复制
    <html>
<body>
<script type="text/javascript">
var myActiveX = null;
var isActiveXCapable = false;

function InitMyActiveX() {

  try {
    new ActiveXObject("");
  }
  catch (e) {
    // FF has ReferenceError here
    if (e.name == 'TypeError' || e.name == 'Error') {
      isActiveXCapable = true;
    }
  }
  try {
    myActiveX = new ActiveXObject("My.ActiveX");
  }
  catch (e) {
    myActiveX = null;
  }

  if (myActiveX != null) {
    document.getElementById("myInfo").innerHTML = myActiveX.GetSomeInfo();
  } else {

    document.getElementById("CallMyActiveX").setAttribute("disabled", "disabled");

    if (!isActiveXCapable) {
      document.getElementById("myInfo").innerHTML = "Browser does not support ActiveX";
    } else {
      document.getElementById("myInfo").innerHTML = "MyActiveX is not installed";
    }
  }
}

function DoSomething() {
InitMyActiveX();
  if (myActiveX != null) {
    var s = myActiveX.DoSomething();
    document.getElementById("myResult").innerHTML = s;
  }

}
</script>

<div id="myInfo"></div>
<input type="button" id="CallMyActiveX" value="Call me" onclick="DoSomething()"  />
<div id="myResult"></div>
</body>
</html>

当简单地在IE10桌面上执行时,我看到"MyActiveX没有安装“。在火狐中,我得到:"MyActiveX没有安装“。我会得到同样的结果在IE10地铁风格吗?如果在地铁里跑,这个能帮我们查清楚吗?

如果这是不正确的,并没有办法区分他们,那么我如何完全模仿地铁风格的IE10桌面?我如何完全禁用activeX,以便它将给我相同的结果,地铁Ie10?

谢谢你,塔尔

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-25 08:52:44

在爬行web以确定我的IE10是以桌面还是地铁版本运行的解决方案后,我最后在以下功能中对所有这些进行了总结:

代码语言:javascript
复制
function checkForIE10MetroStyle() {
var result = false;
if (window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints >= 2) {
    var platF = navigator.platform;
    var cpu = navigator.cpuClass;

    if (platF.toLowerCase() == 'win64' || cpu.toLowerCase() == 'arm') {
        // both potential platforms found - now search deeper
        try {
            // IE10 Metro does not support ActiveX
            new ActiveXObject("htmlfile");
        } catch (e) {
            // finally check for fullscreen-mode
            result = (window.innerWidth == screen.width && window.innerHeight == screen.height);
        }
    }
}

return result;

}

不幸的是,没有完全确定的可能性.但首先,我检查了msPointerEnabled,以及(但这不是必需的)是否至少有两个“接触点”可用。由于我的脚本将不同的触摸和鼠标版本,我需要这个检查-你可以简单地忽略这一点。

但是,正如许多人建议的那样,由于IE10也支持msPointerEnabled,所以我使用了平台字符串.与CPU结合,因为MS Surface运行一个手臂。最后两点: ActiveX和决议.

但不幸的是,即使是所有这些点都可以用触控台式机/笔记本电脑模拟,如果你想.到目前为止,很难获得桌面IE10,但也不是不可能。

如果MS能实现一个简单的属性,告诉您是否触摸,以及桌面或地铁,我会很高兴的。但他们没有。

希望我的密码能帮到你?

票数 3
EN

Stack Overflow用户

发布于 2013-05-02 21:17:41

IE10地铁和IE10桌面版本的功能几乎是相同的(IE10桌面支持插件,而IE10 metro不支持)。如果你想让用户使用桌面版本,并且他们是在地铁版本,最好的方式是指示他们使用桌面版本。考虑到用户在IE10地铁版本中使用IE10桌面版本的情况,他可以在导航栏中点击2下打开桌面版本.这将是最好的方法

票数 0
EN

Stack Overflow用户

发布于 2013-06-11 10:02:33

根据TomažŠčavničar的回答,如果这有帮助的话,您似乎可以强迫用户使用桌面版本。

这篇文章有更多的信息:

Forcing IE10 in UI/Metro to switch to desktop mode

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12236867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档