基本上,我正在做的是在服务器上生成一个PDF文件并通过javascript在浏览器中显示它:
file = new window.Blob([data], { type: 'application/pdf' });
var fileUrl = URL.createObjectURL(file);
var wnd = window.open(fileUrl, "_blank", "location=no, fullscreen=yes, scrollbars=auto, width=" + screen.width + ",height=" + screen.height);
所有这一切都运行良好,但每个浏览器都显示一个丑陋的字幕(如下所示): blob:2da57927-311e-4b3d-a261-d2679074802c
有没有办法摆脱这个副标题或用有意义的东西取而代之?
编辑: 这是改进代码的屏幕截图(在应用VisioN的建议之后):
答案 0 :(得分:3)
正如我在评论中提到的,一种可能的方法是在弹出窗口中创建<iframe>
,显示当前的Blob
数据,并根据需要设置弹出窗口样式:
var win = open('', 'name', 'height=300, width=300'),
iframe = document.createElement('iframe'),
title = document.createElement('title'),
file = new Blob([data], { type: 'application/pdf' }),
fileUrl = URL.createObjectURL(file);
title.appendChild(document.createTextNode('Nice title :)'));
iframe.src = fileUrl;
iframe.width = '100%';
iframe.height = '100%';
iframe.style.border = 'none';
win.document.head.appendChild(title);
win.document.body.appendChild(iframe);
win.document.body.style.margin = 0;
答案 1 :(得分:0)
您可以简单地添加settimeout,以在将blob加载到新标签后更改页面标题,就像这样-
newTab.location.href = URL.createObjectURL(blob);
setTimeout(function() {
newTab.document.title = blob.name;
}, 10);