2009-10-05 9 views
1

링크 추적 스크립트를 만들려고합니다. Google 애널리틱스처럼 작동해야하며 Google 자체 서버에 게시물을 만들어야합니다. 나는 이것을 위해 jQuery를 사용하고있다. 지금까지 작성한 코드는 다음과 같습니다.자바 스크립트 링크 추적 스크립트 + Safari

jQuery(document).ready(function() { 

var opts; 

jQuery.fn.trackAllLinks = function(settings) { 
    settings = jQuery.extend({}, jQuery.fn.trackAllLinks.defaults, settings); 
    opts = settings; 

    function track() { 
     href = jQuery(this).attr('href'); 
     var trackImage = new Image(1, 1); 
     trackImage.src = opts.linkredirector + '?eurl=' + jQuery.URLEncode(href) + '&rnd=' + new Date().getTime() + '&title=trackerimage.gif'; 
     trackImage.onload = function() { 
      trackImage.onload = null; 
      doNothing(); 
     } 
     delay(300); 
     return true; 
    }; 

    function delay(mseconds) { 
     var currentTime = new Date(); 
     var endTime = currentTime.getTime() + mseconds; 
     while (currentTime.getTime() < endTime) { 
      currentTime = new Date(); 
     } 
    } 

    function doNothing() { 
    } 

    if(jQuery(this).is("a")) { 
     jQuery(this).click(track); 
    } 

    jQuery(this).find("a").click(track); 

}; 

jQuery.fn.trackAllLinks.defaults = { 
    linkredirector : '__url_to_post_on__' 
}; 

}); 

Safari를 제외한 모든 브라우저에서 정상적으로 작동합니다. 내가 mailto 링크 또는 앵커를 사용할 때 작동하지만 다른 페이지로 링크 할 때 작동하지 않습니다. 나는 여러 가지 다른 구현을 테스트 해 왔지만 제대로 작동하지 않는다. 너희 중에 누가 실종 된지 알 겠어? 나는 Google 애널리틱스가 어떻게 작동 하는지를 이해하려고 노력했으며, 가능한 한 똑같은 결과를 얻을 수 있습니다. 내 네트워크를 감시하기 위해 와이어 셔크 (WireShark)를 사용할 때 Google의 이미지가 요청되었지만 내 이미지가 아닌 것을 볼 수 있습니다. 즉이 문제에 나의 추측 -

접견, Daan

+0

Windows에서는 Safari에서 별다른 차이가 없지만이 문제는 무엇입니까? 또는 Mac? – scunliffe

+0

두 버전 모두에서 테스트 해봤는데 둘 다 같은 문제가 있습니다. 사파리 Mac에서 나는 자바 스크립트를 디버깅 할 수 있고 올바르게 실행됩니다 .. 클릭 한 후에 당신이 다른 페이지에있을거야 이미지가 시간에로드되지 않은 것과 같습니다. –

답변

0

사파리은 당신의 지연보다 작은 조금 오래 걸리는 있는지 확인하기 위해 거대한 뭔가 지연을 늘려보십시오.

+0

이 말을 잊어 버렸지 만, 이미 조금 더 오래 설정하려고했지만 몇 초가 지나면 아무것도 작동하지 않습니다./사파리가 자바 스크립트가 이미지를 요청하기 전에 기다리는 것과 같습니다. 나는 또한 그것을 GA와 결합 할 때 GA가 실행되기 전에 요청이 수행된다는 것을 보았습니다. –

+0

기본 동작을 취소하는 방법은 나중에 수행하도록 설정합니다. 즉, 내비게이션을 취소하지만 잠시 후 탐색을 위해 타임 아웃을 설정합니까? – Fenton

0

이 랜덤이지만처럼 (두 이름 & 값) 쿼리 문자열에 무작위 매개 변수를 추가하려고 할 수 있습니다 내가해야 할 일을했을 것

Math.random(0, 1000) + '=' + Math.random(0, 1000) 

과거에 사파리를 얻을 수 있음 동적으로로드 된 자원을 등록합니다. (이미 &rnd=이 있지만 이름을 무작위로 시도해보십시오.)

관련 문제