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

Javascript 检查浏览器中是否有.click()函数,javascript,Javascript,我正在构建一个应用程序,它在几个地方使用。click()方法。据报告,它在safari(windows版本)中导致错误,因为它在浏览器中不可用 我做了一些研究,找到了很好的替代方案,我为它创建了一个polyfill解决方案,但我正在努力寻找如何检查浏览器是否支持。单击()方法 我尝试了以下几点: Element.prototype。单击返回所有浏览器中未定义的 元素。单击返回所有浏览器中未定义的 document.prototype.单击返回所有浏览器中未定义的 文档。单击返回所有浏览器中未定

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

我做了一些研究,找到了很好的替代方案,我为它创建了一个polyfill解决方案,但我正在努力寻找如何检查浏览器是否支持
。单击()
方法

我尝试了以下几点:

  • Element.prototype。单击
    返回所有浏览器中未定义的
  • 元素。单击
    返回所有浏览器中未定义的
  • document.prototype.单击
    返回所有浏览器中未定义的
  • 文档。单击
    返回所有浏览器中未定义的
这是我制作的polyfill:

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

现在,我只需要检查它并仅在
不可用时应用。单击()

只需检查新创建的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);
  };
}

您可以验证
yourlement。单击

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

据我所知,
click()
在任何地方都受支持。选中:
if('click'在document.documentElement中)
HtmleElement.prototype。单击
可能就是您想要的after@PatrickMevia:如果这回答了您的问题,请将其标记为已解决!当然我会的;)我只是还不能,它说在5分钟内我将能够,顺便说一句,这个答案是最好的,因为它在全球范围内,真的很好!document.getElementsByTagName(“BODY”)[0]。单击也可以,为什么要创建新元素