如何检查是否为浏览器定义了click()?

时间:2014-03-10 23:12:06

标签: javascript jquery

我发现Safari不支持Jquery的click()。

所以我有点击事件的以下两个实现:

对于Safari:

var foo = document.getElementById(some_id.id);
var ce= document.createEvent("MouseEvent");
ce.initEvent("click", true, true);
foo.dispatchEvent(ce);

对于Safari以外的其他浏览器:

document.getElementById(some_id.id).click();

现在,我的问题是,如果我将两个部分放入我的代码中,我必须应用某种条件来检查,如果一个失败,则使用另一个。然而,我无法找到检查它的方法。

当我使用document.getElementById(some_id.id).click(); Safari出现以下错误:

TypeError:'undefined'不是函数(评估'document.getElementById(del_id.id).click()')

我怎样才能捕获并处理此错误,或检查条件中是否发生此错误?所以我可以让代码尝试另一块?

我试过typeof (document.getElementById(some_id.id).click()) == undefined但没有运气。

谢谢,

1 个答案:

答案 0 :(得分:1)

删除括号。在您的比较中仅使用:.click === undefined