Google에 하나의 추적 이벤트를 보내는 클릭시 트리거하는 기능과 데이터베이스에 레코드를 작성하기 위해 내 서버에 요청하는 기능이 있습니다.새 창을 열기 전에 클릭시 함수의 모든 코드가 실행되도록하려면 어떻게해야합니까?
데스크톱 사용자에게는 모든 것이 잘 작동하지만 일부 모바일 사용자에게는 내 데이터베이스에없는 클릭 이벤트가 기록됩니다. 몇 가지 조사를 한 후에는 웹보기를 통해 새 창을 열면 이전 창에서 JavaScript 실행이 중지되므로 내 서버에 대한 요청이 전송되지 않는다는 사실을 좁혀 냈습니다. 일시적으로 창 열기에 약간의 지연을 추가하여 문제를 일시적으로 완화했지만 최근에는 웹 브라우저의 내장 팝업 차단기가 창을 차단하여 지연을 제거해야한다는 것을 알았습니다.
HTML :
<a ng-click="captureClick(pageUrl)" target="_blank">
JS :
$scope.captureClick = function(link){
//Send Google Analytics click event
ga('send', 'event', 'click');
var linkObj = {
//Create object with click details
};
Links.save(linkObj);
$window.open(link);
};
당신이 당신의 코드를하시기 바랍니다 게시 할 수 있습니까? –
모바일 화면에서 무언가를 탭하는 것은 PC에서 무언가를 클릭하는 것과 정확히 동일하지 않습니다. 코딩 방법에 따라 클릭 논리를 올바르게 실행하기 위해 터치 이벤트를 처리하지 못할 수 있습니다. – Ken
내 코드의 단순화 된 버전을 추가했습니다 – CptnKrunch