我正在构建一个在几个地方使用.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()
不可用时才适用。
答案 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