【发布时间】:2025-12-08 13:00:01
【问题描述】:
我有一个旧的 web 应用程序,其 apache webserver 面向 weblogic 服务器。用户使用客户端证书和密码进行身份验证,然后可以通过 jsp 页面和 https 访问 pdf 文件。在当前浏览器中重新测试应用程序时,我发现 pdf:s 不会在 Edge 中显示。
我试图去除不相关的代码。请注意,用户在到达edge_bug.jsp 之前已使用 SSL 证书登录:
<%@ page %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"/>
<title>edge_bug.jsp</title>
</head>
<body>
<a href="javascript:void(0)" onclick="window.open('testpdf.pdf', 'PDFWin' + new Date().getTime(), 'scrollbars=yes,status=yes,width=370,height=550,resizable=yes')">Open in new window</a>
<a href="testpdf.pdf" >Open in the same window</a>
</body>
</html>
链接在 IE 和 FireFox 中工作正常,并且显示 pdf,但在 Edge 中显示一个空白的灰色窗口。
如果我将页面嵌入框架集中(旧的东西,但应用程序很旧!)然后在同一窗口中打开 pdf 的链接开始工作。打开新窗口的链接与以前一样失败。 edge_bug_frameset.jsp:
<%@ page %>
<!DOCtype html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Frames</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
</head>
<frameset frameborder="0" framespacing="0" border="0">
<frame marginwidth="0" marginheight="0" src="edge_bug.jsp" name="heading" noresize scrolling="no"/>
<noframes>Your browser doesn't handle frames.</noframes>
</frameset>
</html>
浏览器版本:
Microsoft Edge 41.16299.15.0
Microsoft EdgeHTML 16.16299
更新:
我注意到,该行为因 Web 服务器中服务器证书的信任级别而异。
如果网络服务器具有不受信任的证书(红色盾牌和地址栏旁边的“证书错误”文本),则不会显示 pdf,并且行为如上所述。
如果网络服务器证书的信任级别较低(地址栏旁边的灰色挂锁),PDF 最初不会显示,但如果我首先选择始终允许弹出窗口,请等待 10 秒然后按 F5 (重新加载)显示 pdf。在随后的尝试中,pdf 最初仍不会显示,但在我按 F5 后会显示,我不再需要等待 10 秒再执行此操作。
如果网络服务器证书具有更高的信任级别(地址栏旁边的绿色挂锁),则 pdf 最初不会显示,但一旦我选择始终允许弹出窗口,它总是可以工作。
需要注意的是,即使 pdf 在新窗口中打开,这些新窗口也不是弹出窗口;当用户主动点击链接时,会打开一个新窗口。
【问题讨论】:
-
如果您自己打开 PDF 是否有效?
-
@gregwhitworth 我可以自己打开 pdf,也可以通过
file://url 在 Edge 中打开。如果它嵌入在frameset中,则通过应用程序。 -
好的,所以我尝试通过从这篇文章创建一个 PDF 来重现这一点,并且我能够使用这两个链接打开 PDF。代码中唯一的区别是我没有
<%@ page %>这是截图-imgur.com/a/5lwNX 你使用的是什么版本的 EdgeHTML(...> 设置)? -
另外,
<%@ page >有输出吗?我假设没有,但为了清楚起见,您能否确保在 DOCTYPE 之前没有空格或其他 Unicode 字符。 -
@gregwhitworth 该html在
DOCTYPE之前有2个换行符,没有其他字符。我认为问题可能仅在使用证书和 https 时才会出现。
标签: pdf https certificate microsoft-edge