すべてのボタンのページをスキャンし、それぞれのクリックをデータベースに記録するスクリプトがあります。残念ながら、ボタン データは 2 回目のクリックまで送信されません。正しい場所で addEventListener と removeEvent リスナーを使用していますか?
var trkButtons = document.getElementsByTagName('input');
for (var i = 0; i < trkButtons.length; ++i) {
//submit button
if (trkButtons[i].getAttribute("type") == "submit") {
trkButtons[i].addEventListener("click", addBtnClickListener, false);
}
//image button
if (trkButtons[i].getAttribute("type") == "image") {
trkButtons[i].addEventListener("click", addBtnClickListener, false);
}
//file upload
if (trkButtons[i].getAttribute("type") == "file") {
trkButtons[i].addEventListener("click", addBtnClickListener, false);
}
else { }
}
function addBtnClickListener(e) {
e.preventDefault();
this.click();
this.removeEventListener('click', addBtnClickListener, false);
var eventType = "button.click";
var ctrBtnText = this.value;
track(this, eventType, '', '', ctrBtnText, '', '', '');
}