我有一个onclick
函数
<a onclick="func()"></a>
在主页上,用户可以在所有脚本文件加载到该页面上之前单击此链接,因此单击它们的时间过早将获得“空”单击。
注意:我不是在寻找如何更快地加载脚本/与主页同步。
我的问题是,只要载入目标脚本,然后如何继续click
,就如何“捕捉”此点击并“存储”它。
我认为.promise()可以解决问题,但我以前从未使用过,有人可以指出正确的方向吗?
答案 0 :(得分:0)
在页面的开头,定义一个数组,您将在其中使用push()
方法存储所有点击。然后在加载js文件时对它们全部进行处理。
<!-- HTML PAGE -->
<script>var clicks = [];</script>
<a href="#" onclick="clicks.push([func, this])">AAA</a>
<a href="#" onclick="clicks.push([func, this])">BBB</a>
<a href="#" onclick="clicks.push([func, this])">CCC</a>
<!-- JAVASCRIPT FILE -->
<script>
// The function executed by clicking on a link
function func(node) {
console.log(node.innerHTML);
}
window.onload = function () {
// When the page is loaded, rewrite the push() method
// So, when you click on a link, it should execute the function instantly
clicks.push = function (click) {
var fn = click[0],
node = click[1];
fn.call(this, node);
};
// Execute all saved clicks
for (var c = 0; c < clicks.length; c++) {
clicks.push(clicks[c]);
}
};
</script>