Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 哪个版本的IE使用window[objectName]而不是window.document[objectName]?_Javascript_Apache Flex_Internet Explorer_Callback_Externalinterface - Fatal编程技术网

Javascript 哪个版本的IE使用window[objectName]而不是window.document[objectName]?

Javascript 哪个版本的IE使用window[objectName]而不是window.document[objectName]?,javascript,apache-flex,internet-explorer,callback,externalinterface,Javascript,Apache Flex,Internet Explorer,Callback,Externalinterface,我正在尝试使用Javascript回调嵌入到我的页面中的Flex应用程序。通过一些示例,我看到了以下代码用于获取对Flex应用程序的引用: // Get the reference: function thisFlexApp(appName) { if(navigator.appName.indexOf ('Microsoft') != -1) { return window[appName]; } else { return window

我正在尝试使用Javascript回调嵌入到我的页面中的Flex应用程序。通过一些示例,我看到了以下代码用于获取对Flex应用程序的引用:

// Get the reference:
function thisFlexApp(appName) {
    if(navigator.appName.indexOf ('Microsoft') != -1) {
        return window[appName];
    }
    else {
        return window.document[appName];
    }
}

// Use it:
var someVariable = thisFlexApp('NameOfFlexApp').callbackMethod();

我使用了这种方法,但是使用IE9我得到了错误,表明“thisFlexApp”调用不起作用。原来是那个窗口。文档[appName]在IE9中工作,但窗口[appName]没有。由于我不希望我的政府客户使用IE9,我想知道这个方法到底适用于哪个版本的IE?有没有另一个测试比上面的测试更好,它假设IE的所有版本都以某种方式工作?提前感谢。

不要检查浏览器版本,请检查浏览器的功能。您只需检查
window[appName]
是否存在,如果存在,请使用它

function thisFlexApp(appName) {
    if(window[appName]) {
        return window[appName];
    }
    else {
        return window.document[appName];
    }
}
甚至更短:

function thisFlexApp(appName) {
    return window[appName] || window.document[appName];
}

好电话。为什么我不能想到这些事情呢?:)