我的代码是
function getID( swfID ){
if(navigator.appName.indexOf("Microsoft") != -1){
me = window[swfID];
}else{
me = document[swfID];
}
}
function js_to_as( str ){
me.onChange(str);
}但是,有时我的onChange不加载。防火墙错误
me.onChange不是一个函数
我想优雅地降级,因为这不是我的程序中最重要的特性。typeof给出了同样的错误。
关于如何确保它的存在,然后只执行onChange的任何建议
(除了尝试捕捉一项工作外,以下所有方法都没有)
发布于 2009-06-25 04:14:24
试着做这样的事情:
if (typeof me.onChange !== "undefined") {
// safe to use the function
}或者更好一些(根据UpTheCreek的投票结果)
if (typeof me.onChange === "function") {
// safe to use the function
}发布于 2013-02-06 23:27:50
我有这个问题。如果if (obj && typeof obj === 'function') { ... }碰巧是undefined,那么obj会一直抛出一个引用错误,所以最后我做了以下操作:
if (typeof obj !== 'undefined' && typeof obj === 'function') { ... }然而,一位同事向我指出,检查它是否是!== 'undefined',然后检查=== 'function'是否是多余的,因此:
更简单:
if (typeof obj === 'function') { ... }干净得多,效果也很好。
https://stackoverflow.com/questions/1042138
复制相似问题