Javascript 爱奥尼亚:如何让我的点击事件通过

Javascript 爱奥尼亚:如何让我的点击事件通过,javascript,click,ionic-framework,ionic,Javascript,Click,Ionic Framework,Ionic,我创建了一个链接并以编程方式单击它: var a = document.createElement("a"); a.download = "mymap.png"; a.href = canvasdata; document.body.appendChild(a); a.click(); 上述代码块正常情况下会成功触发一次单击,但由于ionic.bundle.js中的此功能,它将被ionic tap事件处理系统阻止: function tapClickGateKeeper(e) { ..

我创建了一个链接并以编程方式单击它:

var a = document.createElement("a");
a.download = "mymap.png";
a.href = canvasdata;
document.body.appendChild(a);
a.click();
上述代码块正常情况下会成功触发一次单击,但由于ionic.bundle.js中的此功能,它将被ionic tap事件处理系统阻止:

function tapClickGateKeeper(e) {
    ...
    // do not allow through any click events that were not created by ionic.tap
    if ((ionic.scroll.isScrolling && ionic.tap.containsOrIsTextInput(e.target)) ||
(!e.isIonicTap && !ionic.tap.requiresNativeClick(e.target))) {
//console.log('clickPrevent', e.target.tagName);
        e.stopPropagation();

        if (!ionic.tap.isLabelWithTextInput(e.target)) {
         // labels clicks from native should not preventDefault othersize keyboard will not show on input focus
          e.preventDefault();
        }
    return false;
    }
}
如果未将IsonicTap设置为true,则此函数不允许通过click事件。因此,我自己在Javascript中创建的单击事件在这里也被阻止


如何让我的点击事件通过?

我的案例是在元素上设置属性数据点击禁用=“true”。

我的案例是在元素上设置属性数据点击禁用=“true”。

我知道问题很老,但仍然想添加我的答案。 在我的情况下,我试图保存CSV文件的形式离子应用程序。 所以这个代码起作用了:

a['type'] = 'submit' ;

document.body.appendChild(link);
var e1 = document.createEvent('MouseEvents');
e1.initEvent('mousedown', true, true);
a.dispatchEvent(e1);

var e2 = document.createEvent('MouseEvents');
e2.initEvent('click', true, true);
a.dispatchEvent(e2);

document.body.removeChild(link);

这段代码基于爱奥尼亚论坛的帖子。

我知道这个问题很老了,但仍然想添加我的答案。 在我的情况下,我试图保存CSV文件的形式离子应用程序。 所以这个代码起作用了:

a['type'] = 'submit' ;

document.body.appendChild(link);
var e1 = document.createEvent('MouseEvents');
e1.initEvent('mousedown', true, true);
a.dispatchEvent(e1);

var e2 = document.createEvent('MouseEvents');
e2.initEvent('click', true, true);
a.dispatchEvent(e2);

document.body.removeChild(link);
此代码基于来自离子论坛的线程