我想檢測用戶使用Metro vs Desktop IE10時的情況。區分IE10桌面和地鐵
我在網上搜索了很多,我發現的結論是,如果用戶在IE10 Metro風格或桌面風格下運行,沒有100%的方法可以找出(使用代碼)。 然後我發現了一些網站,它有一個avascript檢測activeX。
這將足以檢測地鐵與桌面?
的代碼如下:
<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,所以它會給我同樣的結果作爲地鐵IE10?
感謝, 塔爾
你爲什麼要在兩者之間進行區分?微軟建議應用程序應該尋找能力而不是平臺。例如,如果您的腳本在禁用activeX時執行了某些操作,則無論您是在城域還是臺式機上運行,如果禁用了activeX,它都應執行相同的操作。 – Aarkan
由於很多原因,我需要區分它們...... ActiveX事件只是我發現區分這兩者的一種方式。問題是這個工作嗎?這是確定我在哪個版本上工作的正確方法? – Tal
這就是要點。爲什麼需要區分?你能在這裏提出一些理由嗎? – Aarkan