2013-04-23 6 views
2

Google 범용 웹 로그 분석을 통해 블로그 게시물에 대한 의견을 추적하려고합니다. 나는 jQuery를 사용하여 이벤트를 시작하기 위해 레이블에 블로그 게시물의 이름을 표시하려고합니다.jQuery를 사용하여 제출 양식을 실행하는 방법

$(document).ready(function(){ 
    $('#commentform').submit(function(){ 
    var postname = $('h2.post-title').text(); 
    ga('send', 'event', 'Engagement', 'Comment', postname, 5); 

    }); 
}); 

어떤 생각을 : -

은 지금까지 나는 (내가 다른 웹 사이트에 사용되는 코드와 잘 작동을 기반으로) 다음 코드는 한가 작동하지 않는 것처럼 분명히 내가 뭔가를 간과해야합니까?

(죄송하지만 지금은 블로그에 링크 것이지만 아직 살아되지 않음)

감사

+1

창 거짓 실행될 때 폼이 존재하지 않는 경우에 바인딩 이벤트; – ElSinus

+2

어떤 오류가 있습니까? 문제가 뭐야? 그냥 일하지 않니? –

+0

문제는 페이지가 –

답변

2
$(document).ready(function(){ 
$('#commentform').submit(function(){ 
var postname = $('h2.post-title').text(); 
ga('send', 'event', 'Engagement', 'Comment', postname, 5); 
}); 
}); 

우선 무엇보다도. 이 코드는 document에서 찾을 수있는 클래스의 h2 태그 텍스트를 할당합니다. 게시물의 제목을 얻는보다 안정적인 방법은 ID입니다.

둘째, Google Analitycs 코드가 실행되기 전에 양식이 제출되기 때문에 작동하지 않을 수 있습니다. 따라서 analitycs가 데이터 전송을 마치면 기본 동작을 중단하고 양식을 제출해야합니다. (참조 : https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#hitCallback를)

$(document).ready(function() { 
    $(document).on('submit', 'form#commentform', function(e) { 
     var postname = $('#post-title').text(); 
     ga('send', { 
      'hitType': 'event', 
      'eventCategory': 'Engagement', 
      'eventAction': 'Comment', 
      'eventLabel': postname, 
      'eventValue': 5, 
      'hitCallback': function() { 
       //now you can submit the form 
       //$('#commentform').off('submit').trigger('submit'); 
       $('#commentform').off('submit'); //unbind the event 
       $('#commentform')[0].submit(); //fire DOM element event, not jQuery event 
      } 
     }); 
     return false; 
    }); 
}); 

편집 : 난 그냥 작동하지 않을 수 있습니다 hitCallback의 코드를 깨달았다. 수정 된 버전은 DOM 요소의 이벤트를 호출해야하며 그 결과로 양식을 보내야합니다.

Edit2가 : 수정 document.ready()가 GA (...) 후

+0

Thanks MythThrazz - 게시 한 내용을 복사/붙여 넣었지만 여전히 작동하지 않습니다. 오류 메시지가 표시되지 않고 코드가 실행되지 않습니다. 나는 그것에 뭔가를 추가해야합니까? (나는이 ID를 h2에 추가했다.) – vikki

+0

jQuery 1.9+ 코드에 대한 언급을 깜빡했거나 사용하고 있는가? 또한 어떤 코드가 실행되지 않고 있습니까? 이벤트 콜백 또는 hitCallback? – MythThrazz

+0

예 jQuery 1.9 사용 된 사이트 - 이벤트가 실행되지 않습니다 – vikki

0

하드를 실제 페이지를 보지 않고 이야기하는 것이 아니라 가능성이 브라우저는 조지아의 전 양식의 제출로 리디렉션됩니다 네트워크 통화가 이루어진다. 가이 완료 될 때까지 기다린 후 양식을 제출하는 방법이 필요합니다.

+0

사전 유니버설 애널리틱스를 새로 고치고 있다고 생각합니다. 일정을 제출 한 후에 지연을 추가해야합니다. 범용 웹 로그 분석을 사용하면 데이터를 전송 한 후에 실행되는 [hitCallback] (https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#hitCallback)을 지정할 수 있습니다. – mike