用于检查javascript中是否存在函数的try/catch替代方案
Alternative to try/catch for checking if a function exists in javascript
之所以使用以下语句,是因为可能并不总是定义有问题的方法(refreshPartyList(((。
try {
parent.document.getElementById("myId").contentWindow.refreshPartyList(param1, param2);
}catch(e){}
目前使用上述方法,效果良好,但有更好的替代方案吗?
var e = parent.document.getElementById("myId").contentWindow;
if(e.refreshPartyList)
e.refreshPartyList(param1, param2);
您可以使用一个简单的if:来检查该方法是否存在
if (parent.document.getElementById("myId").contentWindow.refreshPartyList) {
parent.document.getElementById("myId").contentWindow.refreshPartyList(param1, param2);
}
或者更好的是,使用jQuery(因为if
不能保证它是一个函数(:
if (jQuery.type(parent.document.getElementById("myId").contentWindow.refreshPartyList) == 'function') {
var win = parent.document.getElementById("myId").contentWindow;
win.refreshPartyList && win.refreshPartyList(param1, param2);
使用x.method && x.method(...)
检查该方法是否存在。
相关文章:
- errors with Javascript try catch
- JSON.parse,已经在try/catch块中,仍然抛出语法错误
- 在try-catch块内的HTML文件中导入JavaScript文件
- 有没有一种方法可以将try-catch添加到Javascript中的每个函数中
- Javascript Try Catch for DIV
- Safari 在尝试使用 Javascript try/catch 访问父窗口对象时未捕获异常
- 与在异步回调链中使用 try catch 块相比,返回异常有什么优势
- 在 Javascript 中,即使从未抛出异常,使用 try-catch 块是否昂贵
- JavaScript 中的 try-catch:如何获取原始错误的堆栈跟踪或行号
- 使用 try catch(e) 进行浏览器功能检测
- 了解 JavaScript 中的异常处理:当更改 try/catch 块的位置时,获得不同的输出
- 在 JavaScript 中用“try catch”包装每个方法的性能问题
- execScript try/catch in IE 8 中的怪异之处
- Javascript代码仅在FireFox中的try-catch块中失败
- 在 AJAX 响应中查找嵌套属性,这是 try/catch 的情况
- 使用 window.onerror 和 try-catch 块处理错误之间的差异
- 在声明变量时使用 try catch
- Array.map+try/catch传递了引用赋值延迟
- 在PHP中使用Try-catch结构
- 如何停止javascript中嵌套try/catch错误的传播