문제

Target = "_ blank"속성을 사용하여 새 창에서 열리는 링크가 많이 있습니다. Google 웹 로그 분석 목표 추적을 이러한 링크 클릭에 첨부하고 싶습니다.

이렇게하려면 OnClick = "pagetracker._trackPageView ( '/event/Outgeing')"링크에 첨부를 첨부하려고 시도했습니다.

그러나 Target = "_ blank"속성과의 링크의 경우 JavaScript OnClick 이벤트가 건너 뜁니다. 따라서 목표는 기록되지 않습니다. 다시 말해,이 링크는 목표를 성공적으로 기록합니다.

<a href="http://www.yahoo.com" onclick="pageTracker._trackPageview('/event/outgoing')">Click me</a>

그러나 이것은 다음과 같습니다.

<a href="http://www.yahoo.com" target="_blank" onclick="pageTracker._trackPageview('/event/outgoing')">Click me</a>

왜 이것이 왜 발생했는지 아는 사람이 있습니까? 쉬운 해결책이 없다고 가정하면 문제를 해결하기 위해 JavaScript를 사용해야한다고 가정합니다. 다음 코드는 목표를 성공적으로 기록하지만 (링크를 열지 않음) :

function attach_goal_tracking() {
    var links = document.getElementsByClassName("buyTicketsLink");
    for(var i=0; i<links.length; i++) {
        links[i].onclick = record_goal;
        }
}

function record_goal(e) {
    e.stop();
    pageTracker._trackPageview('/event/outgoing');
}

그러나 레코드 _goal 함수에 추가하여 링크를 열면 ...

function record_goal(e) {
    e.stop();
    pageTracker._trackPageview('/event/outgoing');
    var newWindow = window.open(this.getAttribute('href'), '_blank');
    newWindow.focus();
    }

... 그런 다음 목표를 추적하지 못합니다.

누구든지 이것이 왜이 문제를 해결하기 위해 무엇을 해야하는지 말해 줄 수 있습니까? 참고로 JavaScript 용 프로토 타입을 사용하고 있습니다.

도움이 되었습니까?

해결책

팝업 차단제 (Googlebar라고 생각하는 것)에 문제가있을 수 있습니다. 창을 열지 못하고 ( onclick) 방지 onclick 실행에서 코드. 예를 들어 참조하십시오 이것 그리고 이것 다른 사람들이 가진 비슷한 소리의 문제.

또는 클릭 핸들러 코드에 오류가 발생하여 나머지 코드가 완료되는 것을 방지하는 오류가 발생할 수 있습니다. 귀하의 질문에 대한 내 의견을보십시오. e.stop() IE에서 실패 할 수 있습니다.

그러나 당신의 가설은 거짓입니다. target="_blank" 그리고 onclick="..." 함께 일하면서 잘 작동합니다.

적절한 테스트 케이스 : http://jsbin.com/anahe (추가하다 /edit 코드를 편집하려면 URL에). 팝업 차단기를 끄야 할 수도 있습니다.:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Sandbox</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<script>var clickCount= 0;</script>
</head>
<body>
  <a href="http://www.google.com" target="_blank" onclick="document.getElementById('dbg').innerHTML = ++clickCount">
     open new
  </a>
  <div id="dbg"></div>
</body>
</html>

링크를 클릭하면 새 창이 엽니 다 그리고 링크 된 횟수로 DIV를 업데이트합니다. IE6, IE7, FF2, FF3.5, Chrome 2, Chrome 3, Opera 9에서 이것을 테스트했습니다.

다른 팁

Victor는 E.Stop ()가 비정상적이며 다음 코드가 새 탭을 성공적으로 엽니다는 것을 확인할 수 있으며 이전 탭에서 비동기 적으로 경고 (결과적으로 초점을 맞추는).

<a href="" target="_blank">reload</a>

<script>

var as = document.getElementsByTagName('a');
for (var i = 0; i < as.length; i++) {
    var a = as[i];
    a.onclick = function(e) {
        setTimeout(function() {
            alert('hi hi');
        }, 1000);
    }
}

</script>

다음으로 가장 좋은 점은 링크 추적 페이지를 가지고 해당 페이지를 통해 모든 외부 링크를 라우팅하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top