13

以下是僅在Internet Explorer(IE)中出現的問題。我有一個頁面可以鏈接到幾種不同類型的文件。這些文件的鏈接執行一個Javascript函數,打開一個新窗口並加載特定的文件。這很好,除非我需要在新窗口中打開的文件是PDF,在這種情況下窗口是空白的,即使URL在地址字段中。使用F5刷新該窗口並沒有幫助。但是,如果我將光標放在地址欄中,並按<enter> PDF加載正確。IE不會在使用window.open創建的窗口中加載PDF

此問題只發生在IE中。我已經在IE 7和8中看到它,並且正在使用Adobe Acrobat Reader 9.在Firefox(PC和Mac)中,一切正常。在Chrome(Mac)中,PDF已下載。在Safari(Mac)它的工作原理。在Opera(Mac)它提示我打開或保存。基本上,一切都可能正常工作,除了IE瀏覽器。

我已經搜索了類似的問題,並看到一些帖子,建議在IE上調整一些Internet選項。我已經嘗試過,但它沒有幫助,而且問題也不完全一樣。

這裏是我用來打開新窗口的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以及窗口的高度h和寬度w。我已經使用了這樣的功能多年,據我所知,從來沒有問題。

我使用這個函數調用newwin()函數。

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

(是的,我知道有其他的,比使用內聯JS更好的辦法,我甚至已經嘗試了一些他們,因爲我已經跑出來的東西去嘗試,但沒有任何工程。)

所以,如果有人有什麼可能會導致這個問題的想法,我很樂意聽到它。

回答

12

嘗試:

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 2010-05-11 13:56:58

+1

我很確定這只是IE實現中的一個錯誤(像往常一樣)。如果這是一個安全問題,那麼它根本無法工作。 – 2010-05-11 15:31:08

1

我已經(使用jQuery)在這裏解決了這個問題,一種無形的iframe

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

而這種邏輯:

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

在我的案件的行爲就好像文檔在彈出窗口中打開一樣,因爲我正在使用

Content-Disposition: attachment; filename="document.pdf" 
相關問題