13

Internet Explorer'da (IE) yalnızca 'un oluştuğu sorun. Birkaç farklı dosya türüne bağlanan bir sayfam var. Bu dosyalardan gelen bağlantılar yeni bir pencere açan ve belirli bir dosyayı yükleyen bir Javascript işlevi yürütür. Yeni pencerede açmam gereken dosya, URL adres alanında olsa bile, pencerenin boş olduğu bir PDF değilse, bu harika çalışır. F5 kullanarak bu pencereyi yenilemek yardımcı olmaz. Ancak, imleci adres alanına koyarsam ve <enter> tuşlarına basarsam PDF yukardan yüklenir.IE, window.open ile oluşturulan bir pencerede PDF yüklemez.

Bu sorun, yalnızca IE'de oluşur. IE 7 ve 8'de gördüm ve Adobe Acrobat Reader 9'u kullanıyorum. Firefox (PC ve Mac) her şey mükemmel çalışıyor. Chrome (Mac) 'de, PDF indirilir. Safari (Mac) uygulamasında çalışır. Opera (Mac) uygulamasında açmam veya kaydetmem isteniyor. Temel olarak, her şey muhtemelen IE dışında, iyi çalışır.

Benzer sorunları araştırdım ve IE'deki Internet Seçenekleri'nin bazılarını uyarlamanın önerildiği bazı yayınlar gördüm. Bunu denedim ama yardım etmiyor ve sorun zaten aynı değildi.

Yeni pencereyi açmak için kullandığım Javascript işlevi.

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(); 
} 

Ben pencerenin, ağırlık, boy, h ve genişlik gibi URL iletmek görüyoruz. Yıllarca böyle bir işlev kullandım ve bildiğim kadarıyla bir problemim olmadı. Kullanarak newwin() işlevini çağırıyorum

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

(Evet, satır içi JS kullanarak başka, daha iyi yolları vardır biliyorum ve denemek şeyler tükendi çünkü ben bile bazıları denedim, ama hiçbir şey çalışır.)

Peki, bu sorunun neden olabileceği konusunda bir fikri varsa, bunu duymak isterim.

cevap

12

deneyin: I (jquery kullanarak) burada görünmez bir iframe

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

Ve bu mantıkla bu sorunu çözdük

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

Çözümünüzü uyguladıktan sonra benzer bir sorunla karşılaştım, pdf şimdi mükemmel bir şekilde sonuç veriyor. Bunun nasıl çalıştığını açıklar mısınız? Bölge mi, yoksa güvenlik mi? Neden sadece window.open kullandığımda çalışmıyor? – SoftwareGeek

+1

IE'nin uygulamasında (her zamanki gibi) sadece bir hata olduğundan eminim. Bir güvenlik sorunu olsaydı o zaman işe yaramazdı. –

1

:

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

benim durumumda davranış

kullanırken belgenin bir açılır pencerede açıldığı gibi
Content-Disposition: attachment; filename="document.pdf" 
İlgili konular