【发布时间】:2011-12-11 09:04:45
【问题描述】:
如何从 Javascript 检测环境是 Windows 8 Metro 应用程序?
更新:澄清一下,我的 Javascript 代码既可以在任何浏览器上运行,也可以作为 Win8 应用程序的一部分运行。由于 Win8 应用程序对 JS 代码施加了安全限制,所以我想检测代码何时在 Win8 应用程序中运行。
【问题讨论】:
标签: javascript windows-8 microsoft-metro
如何从 Javascript 检测环境是 Windows 8 Metro 应用程序?
更新:澄清一下,我的 Javascript 代码既可以在任何浏览器上运行,也可以作为 Win8 应用程序的一部分运行。由于 Win8 应用程序对 JS 代码施加了安全限制,所以我想检测代码何时在 Win8 应用程序中运行。
【问题讨论】:
标签: javascript windows-8 microsoft-metro
回答我自己:
检测这种情况的一种方法是检查某些特定于 MS 的对象或命名空间是否存在。其中之一是 Windows。例如:
if (typeof Windows != "undefined") {
// Running in Win8 app
} else {
// Running in a browser
}
【讨论】:
Windows 命名空间。
({}).toString.call(Windows) 是什么吗?这可能是一个更强大的检测。
我认为你可以使用:
WorkerNavigator.useragent检测它的属性
【讨论】:
我使用这个代码:
var isWinJS = !!window.Windows && /^ms-appx:/.test(location.href);
【讨论】: