2009-12-14 5 views
3

사용자가 IFrame에서 링크를 클릭 할 때 iframe 내부에서 일어나는 일을 추적하고 싶습니다. iframe (부모)이 포함 된 페이지는 iframe의 페이지를 통해 사용자의 탐색을 추적하는 것입니다. 두 페이지는 하위 도메인이 다를지라도 동일한 최상위 도메인에서 호스팅됩니다.iframe에서 사용자를 추적하는 방법

클릭 할 때마다 부모 페이지가 필요하다는 알림이 필요하지만 iframe에로드하는 페이지를 직접 제어 할 수는 없습니다.

iframe의 페이지를로드 할 때마다 모든 링크에 onclick을 추가하고 있습니까? 이 일을 어떻게 하죠?

<html> 
<script language="javascript"> 
    var currentURL; 
</script> 
<body> 
    <iframe id="container" width="500" height="500" src="http://subdomain.parentdomain.com"/> 
</body> 

답변

0

나는 콘텐츠를하기 위해 AJAX - 프록시를 사용하기 위하여려고하고있다 (지금까지와 같은 : 다행히 누군가가 이미 당신을 위해 더러운 일을했다 브라우저는 내 도메인에서 왔습니다). 이렇게하면 CodeJoust에서 언급 한 모든 크로스 도메인 스크립팅 문제가 해결됩니다. 오버 헤드로 인해 전달 속도가 문제가 될 수 있지만이를보아야합니다.

아마이 유래 질문의 라인을 따라 이동합니다 : 법적 문제 프록시에 관한 동적 페이지의 콘텐츠를 변경에 관한

"Apply “onclick” to all elements in an iFrame"

, 그것을 확인해야합니다. 나는 명시적인 동의를하는 사용자를 추적하는 것이 윤리적 관점에서 볼 때 문제가되지 않는다고 생각합니다.

3

iframe이 도메인 간 액세스가 같은 도메인, 하위 도메인 및 포트 여야합니다 :

가 구축되는 "템플릿"일 것이다.

같은 도메인을 가지고 있다면, 당신은 jQuery를 그것으로 등, 그들은 구글 분석, 데이터베이스와 같은 뭔가 클릭을 기록 클릭 할 때 다음, 모든 링크에 이벤트 핸들러를 클릭

+0

domain.com/folder/file.htm에있는 페이지에서 sub1.domain.com에 액세스 할 수 있습니까? 이것은 나를위한 해답이 될 수 있습니다. 로컬 버전의 경우 다음 코드가 작동했습니다. http://stackoverflow.com/questions/753863/apply-onclick-to-all-elements-in-an-iframe – Paul

-2

을 결합 수 쉬울 것입니다.

$(document).ready(function(){ 
    var iframeWindow = $('#container')[0].contentWindow; 
    $(iframeWindow).load(function(){ 
     $(this).find('a').click(top.myClickHandler); 
    }); 
} 

function myClickHandler(){ 
    /* Do something */ 
} 
+0

아직 jQuery를 사용하지 않았지만 위의 코드는 iframe의 맨 첫 페이지에서만 작동합니까? 모든 후속 페이지는 내 사이트가해야 할 일을하기 위해 변경되어야합니다. – Paul

+0

다른 하위 도메인에 있기 때문에 작동하지 않습니다. 동일한 도메인에서 iframe을 가져 오면'$ (parent) .find ('a'). click (function() {})'을 사용할 수는 있지만 하위 도메인으로 인해 작동하지 않습니다. – CodeJoust

+0

하위 도메인 문제를 확인하십시오. TOP 페이지에서 작동하도록이 코드를 작성했습니다. 따라서 새 페이지가 iframe에로드 될 때마다 해당 페이지의 모든 앵커에 클릭 핸들러가 연결됩니다. 이렇게하면 iframe에로드 된 모든 페이지 (부모 페이지 포함) 만 변경할 필요가 없습니다. –

1

나는 당신 차단제의 iframe을

에로드 페이지를 직접 제어 할 필요가 없습니다. 원격 페이지에서 코드를 보강 할 수 있다면 postMessage 및 iframe 조각 식별자 해킹을 사용하여 브라우저 범위를 확보 할 수 있습니다.

+0

아쉽게도 코드를 보완하는 것은 옵션이 아닙니다. 다른 나라에있는 여러 부서를 생각해보십시오. 나는이 방향으로 해킹을 보았고 실제로 문자열 (현재 클릭되거나 iframe에 표시되는 URL)을 보내는 것으로 충분할 것입니다. 정말 나쁘게 사용할 수 없습니다. – Paul

관련 문제