13

这是问题,它只发生在 Internet Explorer (IE)中。我有一个页面链接到几种不同类型的文件。这些文件中的链接执行一个 Javascript 函数,该函数打开一个新窗口并加载特定文件。这很好用,除非我需要在新窗口中打开的文件是 PDF,在这种情况下,即使 URL 在地址字段中,窗口也是空白的。使用 F5 刷新该窗口没有帮助。但是,如果我将光标放在地址字段中并向上按<enter>PDF 加载。

这个问题只出现在 IE 中。我已经在 IE 7 和 8 中看到它,并且正在使用 Adob​​e 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 更好的方法,我什至尝试了其中的一些,因为我已经用完了可以尝试的东西,但没有任何效果。)

因此,如果有人知道可能导致此问题的原因,我很想听听。

4

2 回答 2

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();
}
于 2010-04-27T19:46:15.533 回答
2

我已经用一个不可见的 iframe 解决了这个问题

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

这里的逻辑(使用jquery):

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

在我的情况下,行为就像我正在使用的那样在弹出窗口中打开文档

Content-Disposition: attachment; filename="document.pdf"
于 2012-02-14T13:20:10.520 回答