ユーザーが Metro vs Desktop IE10 で作業しているときを検出したいと思います。
私は Web をかなり検索しましたが、ユーザーが 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 スタイルを完全に模倣するにはどうすればよいですか? メトロ Ie10 と同じ結果が得られるように、activeX を完全に無効にするにはどうすればよいですか?
ありがとう、タル