我正在尝试使用object标签内联显示PDF文档 - 它在Chrome和Firefox中按预期工作,但在Edge中不起作用。
示例代码:
<object id="pdfObj" data="http://www.pdf995.com/samples/pdf.pdf" type="application/pdf" target="_parent">
</object>
Plunker:http://plnkr.co/edit/wH9ECcwkx3vHFv43xTo5?p=preview
在Edge中显示PDF查看器的好方法是什么?谢谢你的帮助。
答案 0 :(得分:2)
我遇到过类似的问题。对象标签在IE和EDGE中的行为不同;服务器需要接受对象标签发出的HEAD请求(HEAD请求:仅在IE&amp; EDGE中)并给出响应,然后获取请求以获取文件。 这是Microsoft浏览器的限制。
编辑1:如果我将带有数据属性中的url的对象标签html添加到dom而不是使用javascript设置已经在的对象标记的属性值,这对我(EDGE和IE也是如此)有效dom。请注意,我有一个端点刷新响应,这会更新数据属性的值。
答案 1 :(得分:1)
在修复错误之前,更改数据不会在EDGE中起作用。我找到了一个解决方法来删除元素并向其父元素添加一个新元素。它可能不适用于所有情况,但它对我有用。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
function loadPdf() {
var viewer = document.getElementById("ScanPdf");
var parent = viewer.parentElement;
var newViewer = document.createElement("object");
viewer.remove();
newViewer.setAttribute("data", "your new url here");
newViewer.style = oldStyle;
parent.appendChild(newViewer);
}
</script>
</head>
<body>
<object width="1080" height="1080" id="ScanPdf" data="old url here"
type="application/pdf" scanitemid="2317">ffff</object>
<button onclick="loadPdf()">LOAD PDF</button>
</body>
</html>
答案 2 :(得分:0)
我用 text / html 替换了type属性的值。
<object id="pdfObj" data="http://www.pdf995.com/samples/pdf.pdf" type="text/html" target="_parent"></object>
此方法适用于Edge和IE11。
<!doctype html>
<html>
<body style='height: 100%; width: 100%; overflow: hidden; margin:0px; background-color: rgb(82, 86, 89);'>
<embed style='position:absolute; left: 0; top: 0;'width='100%' height='100%' src='about:blank' type='application/pdf' internalid='5BD5603FA794B387B2B97F624FB9ABDE'></embed>
</body>
</html>
Edge和IE11可能会检查响应内容并将其阻止,因为它不是pdf ...
pdf位于响应的
在这种情况下,将类型设置为 text / html 可以在我的浏览器上使用:
我不尝试使用Safari。
我希望这个答案对您有所帮助,并且我的英语不会对您造成太大的困扰
答案 3 :(得分:-3)
替换iframe的object标记。这对我有用
<iframe id="pdfObj" href="http://www.pdf995.com/samples/pdf.pdf" >