13

은 Internet Explorer (IE)에서만 발생하는 문제입니다. 여러 다른 유형의 파일에 대한 링크가있는 페이지가 있습니다. 이 파일의 링크는 새 창을 열고 특정 파일을로드하는 Javascript 기능을 실행합니다. 새 창에서 열어야하는 파일이 PDF 인 경우를 제외하고 URL이 주소 입력란에 있더라도 창이 공백 인 경우가 아니라면이 방법이 유용합니다. F5 키를 사용하여 창을 새로 고치는 것은 도움이되지 않습니다. 그러나 주소 입력란에 커서를 놓고 <enter>을 누르면 PDF가 바로로드됩니다.IE는 window.open으로 만든 창에 PDF를로드하지 않습니다.

이 문제는 IE에서만 발생합니다. IE 7 및 8에서 보았으며 Adobe Acrobat Reader 9를 사용하고 있습니다. (PC 및 Mac)에서 모든 것이 완벽하게 작동합니다. 크롬 (Mac)에서 PDF가 다운로드됩니다. Safari (Mac)에서 작동합니다. 에서 Opera (Mac)을 열거 나 저장하라는 메시지가 나타납니다. 기본적으로 IE를 제외한 모든 기능이 정상적으로 작동합니다.

나는 비슷한 문제를 조사했으며 Internet Explorer의 일부 인터넷 옵션을 조정할 것을 제안하는 게시물을 보았습니다. 나는 이것을 시도했지만 도움이되지 않으며 문제는 어쨌든 정확히 동일하지 않았습니다.

다음은 새 창을 여는 데 사용하는 Javascript 기능입니다.

function newwin(url,w,h) { 
    win = window.open(url,"temp","width="+w+",height="+h+",menubar=yes,toolbar=yes,location=yes,status=yes,scrollbars=auto,resizable=yes"); 
    win.focus(); 
} 

URL의 높이와 너비 및 너비를 창에서 확인할 수 있습니다. 나는 수년간이 기능을 사용 해왔다. 그리고 내가 아는 한 결코 문제가 없었던 것이다.

나는 이것을 사용하여 newwin() 함수라고 부른다.

<a href="javascript:newwin('/path/document.pdf',400,300)">document.pdf</a> 

(예, 인라인 JS를 사용하는 것보다 다른, 더 나은 방법이 알고, 내가하려고하는 일이 부족했기 때문에 난 그들 중 일부를 시도했지만, 아무것도 작동하지 않습니다.)

누군가이 문제를 일으킬 수있는 아이디어가 있다면 나는 그것을 듣고 싶습니다.

답변

12

시도 : 나는 (jQuery를 사용하여) 여기에 눈에 보이지 않는 iframe을

<div id="iframe" style="display: none"> 
    <iframe id="frm" style="display: none"></iframe> 
</div> 

그리고이 논리로이 문제를 해결 한

function newwin(url,w,h) { 
    var win = window.open("","temp","width="+w+",height="+h+",menubar=yes,toolbar=yes,location=yes,status=yes,scrollbars=auto,resizable=yes"); 
    win.location.href = url; 
    win.focus(); 
} 
+2

솔루션을 적용한 후에 비슷한 문제가 발생했습니다. 이제 pdf가 완벽하게 렌더링됩니다. 어떻게 작동하는지 설명해 주시겠습니까? 그것은 영역입니까 아니면 보안입니까? window.open 만 사용하면 왜 작동하지 않습니까? – SoftwareGeek

+1

저는 IE의 구현에서 버그 일 뿐이라고 확신합니다 (평소와 같이). 보안상의 문제라면 전혀 작동하지 않을 것입니다. –

1

:

if ($.browser.msie && ($.browser.version &lt; 9.0)) { 
    frm.location.href = href; 
} 
else { 
    window.open(href); 
} 

내 경우에는 동작 내가 사용하고있는 것처럼 문서가 팝업으로 열리는 것과 같습니다.

Content-Disposition: attachment; filename="document.pdf"