我正在尝试使用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“调用不起作用。原来window.documentappName可以在IE9中工作,但windowappName不能,因为我不希望我的政府客户使用IE9,所以我想知道这种方法在哪个版本的IE上可以工作?有没有比上面假设所有版本的IE都以某种方式工作的测试更好使用的测试呢?提前谢谢。
发布于 2011-06-01 01:49:01
不要检查浏览器的版本,检查浏览器的功能。您可以只检查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];
}https://stackoverflow.com/questions/6191388
复制相似问题