检查浏览器中是否有.click()函数

时间:2017-03-31 11:22:45

标签: javascript

我正在构建一个在几个地方使用.click()方法的应用程序。据报道,它会导致safari(Windows版本)出错,因为它在浏览器中不可用。

我做了一些研究,我发现了很好的替代方案,我为它创建了一个polyfill解决方案,但我很难找到如何检查浏览器是否支持.click()方法。

我试过以下:

  • Element.prototype.click在所有浏览器中返回undefined
  • Element.click在所有浏览器中返回undefined
  • document.prototype.click在所有浏览器中返回undefined
  • document.click在所有浏览器中返回undefined

这是我制作的polyfill:

Element.prototype.click = function() {
    var click_ev = document.createEvent("MouseEvents");
    click_ev.initEvent("click", true /* bubble */, true /* cancelable */);
    this.dispatchEvent(click_ev);
};

现在我只需要检查并仅在.click()不可用时才适用。

2 个答案:

答案 0 :(得分:2)

只需检查新创建的dom元素是否存在事件:

if (!document.createElement('div').click) {
  Element.prototype.click = function() {
    var click_ev = document.createEvent("MouseEvents");
    click_ev.initEvent("click", true /* bubble */, true /* cancelable */);
    this.dispatchEvent(click_ev);
  };
}

答案 1 :(得分:1)

您可以验证1227159598 14j9y1e 1227159598 1228394165 14kfknn 1228394165 1229628732 14mn99w 1229628732 1230863299 14ntyy3 1230863299 1232097866 14q0mja 1232097866 1233332433 14r6a6h 1233332433 1234567000 14sbztr 1234567000

yourElment.click
相关问题