我想检测用户何时使用 Metro vs Desktop IE10。
我在网上搜索了很多,我发现的结论是,如果用户以 IE10 Metro 风格或桌面风格运行,没有 100% 的方法可以找出(使用代码)。然后我找到了一些网站,它有一个检测activeX的avascript。
这足以检测 Metro vs Desktop 吗?
代码如下:
<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”。在 Firefox 中,我得到:“未安装 MyActiveX”。我会在 IE10 Metro 风格中得到相同的结果吗?这将有助于确定是否在地铁中运行?
如果这不正确并且无法区分它们,那么我如何完全模仿 IE10 桌面中的 Metro 风格?我如何完全禁用activeX,这样它会给我与metro Ie10相同的结果?
谢谢, 塔尔