2011-01-06 6 views
0

location.replace (strURL)가 다른 모든 주요 브라우저에서 파일을 작동시키는 것 같아서 질문은 IE7에만 해당됩니다. 일부 analytics js를 실행하고 사용자가 다운로드하려는 리소스 (일반적으로 doc 또는 pdf)의 위치로 사용자를 리디렉션하려고합니다. 사용자가 js 코드가 포함 된 페이지를 엽니 다. 다운로드는이 ​​broswer 자원 URL로 역사에서 현재 페이지의 항목을 교체하여 다음 코드를 사용하여 resurouce URL을로드해야합니다 추적 후 :브라우저 기록에 영향을주지 않고 동일한 broswer 창에서 새 페이지 열기

if (IE) { 
      window.open(strURL,"_self", true); //doesn't work 
      //window.open(strURL,"_self",undefined, true); //doesn't work 
      return; 
     } 

이 코드는 리디렉션 페이지의 역사에 항목을 만듭니다. 동일한 페이지에서 iframe을 사용해 보았지만 파일이 * .doc 인 경우 IE에서 보안 경고가 표시됩니다.

아이디어가 있으십니까?

+0

"사용자가 열립니다 ... ..."에서 나를 잃어 버렸습니다. – DanMan

답변

0

IE7에서이를 피할 수있는 방법이 있는지 확실하지 않습니다. 아마도 다른 접근법이 가능합니다. 리디렉션하기 전에 분석 페이지를 현재 페이지에 삽입하면 다른 페이지를 모두로드 할 필요가 없습니다. 이 접근법에서는 새 스크립트 태그를 만들어 head 요소에 삽입합니다. 스크립트가로드되면 실행되고 분석을 수행 한 다음 마지막 단계 (예 : 다운로드)로 리디렉션을 실행합니다.

function redirectWithAnalytics() { 
    var s = document.createElement('script'); 
    s.src = 'path/to/analytics.js'; 
    s.type = 'text/javascript'; 
    document.getElementsByTagName('HEAD')[0].appendChild(s); 
} 
+0

불행히도 내 경우에는 가능하지 않습니다. 요청이 사이트 이미지를 비롯한 다양한 파일에 대한 요청을 처리하는 공통 자산 처리기를 거치므로 데이터베이스를 이동할 때까지 사용자가 다운로드 링크를 클릭했는지 여부는 알 수 없습니다. 따라서 추적 스크립트를 삽입할지 여부를 결정하면 서버로의 다른 여행 비용이 발생합니다. 어쨌든, 내가 창문으로 뭔가 잘못하고 있는거야. 문 열어. 나는 동일하거나 유사한 이슈로 다른 누구도 찾을 수 없기 때문에 나는 뭔가 잘못하고 있다고 생각하게한다. –

+0

스크립트의 src를 데이터베이스 검사를 수행하는 서버 측 스크립트로 만들고 왜 적절하면 분석 코드를 반환하게하지 않는 것이 좋으며, 그렇지 않으면 빈 문자열이나 다른 함수 호출을 반환하여 사용자에게 유효한 링크? –

관련 문제