这是问题,仅出现在Internet Explorer(IE)中。我有一个页面,其中包含指向几种不同类型文件的链接。来自这些文件的链接执行Javascript函数,该函数打开一个新窗口并加载特定文件。这很好用,除非我需要在新窗口中打开的文件是PDF,在这种情况下窗口是空白的,即使URL在地址字段中。使用F5刷新该窗口没有帮助。但是,如果我将光标放在地址字段中并按<enter>
,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之外还有其他更好的方法,我甚至尝试过其中的一些,因为我已经用尽了一些东西,但没有任何作用。)
所以,如果有人知道可能导致这个问题的原因,我很乐意听到。
答案 0 :(得分: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();
}
答案 1 :(得分:2)
我用不可见的iframe解决了这个问题
<div id="iframe" style="display: none">
<iframe id="frm" style="display: none"></iframe>
</div>
这里的逻辑(使用jquery):
if ($.browser.msie && ($.browser.version < 9.0)) {
frm.location.href = href;
}
else {
window.open(href);
}
在我的情况下的行为就像在弹出窗口中打开文档一样,因为我正在使用
Content-Disposition: attachment; filename="document.pdf"