Windows 用于检查Win8或iOS的条件语句

Windows 用于检查Win8或iOS的条件语句,windows,winjs,Windows,Winjs,我正在为多台设备编写一个HTML5/JavaScript应用程序,但在为Win8和iOS编写应用程序时遇到了问题 由于Win8的严格安全性,我需要将某些函数,特别是那些向窗口中注入HTML或div的函数,封装在一个名为 当我在iOS上运行同一个应用程序时,它无法运行这些功能,因为WinJS不存在 如何创建条件语句,以便它检查运行应用程序的设备是Win8设备还是iOS?通过这种方式,我可以告诉它运行函数foo或函数栏JavaScript目前不支持条件编译,因此我认为您需要编写自己的存根函数来封装e

我正在为多台设备编写一个HTML5/JavaScript应用程序,但在为Win8和iOS编写应用程序时遇到了问题

由于Win8的严格安全性,我需要将某些函数,特别是那些向窗口中注入HTML或div的函数,封装在一个名为

当我在iOS上运行同一个应用程序时,它无法运行这些功能,因为WinJS不存在


如何创建条件语句,以便它检查运行应用程序的设备是Win8设备还是iOS?通过这种方式,我可以告诉它运行函数foo函数栏

JavaScript目前不支持条件编译,因此我认为您需要编写自己的存根函数来封装execunsaleocalfunction之类的函数。在该函数中,您可以通过检查名称空间来测试该函数是否存在。比如:

function callUnsafeFunction(func) {
    if (MSApp && MSApp.execUnsafeLocalFunction) {
        return MSApp.execUnsafeLocalFunction(func);
    } else {
        return func() 
    }
}
或者,您可以检查该函数是否存在于名称空间中,如果不存在,则添加与passthrough同名的函数,类似于这样(我没有测试过此类代码):

简而言之,条件检查是指名称空间/函数的存在,因为我们没有条件编译

if (!(MSApp && MSApp.execUnsafeLocalFUnction)) {
    window.MSApp = {
        execUnsafeLocalFunction: function(func) {
            func();
        }
    };
}