Javascript 哪个版本的IE使用window[objectName]而不是window.document[objectName]?
我正在尝试使用Javascript回调嵌入到我的页面中的Flex应用程序。通过一些示例,我看到了以下代码用于获取对Flex应用程序的引用: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
// 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];
}
好电话。为什么我不能想到这些事情呢?:)