上一节打开PDF文件,标题一直显示文件名称
如果我们标题名称为了安全设置编码字符这时候客户就看不懂标题了,为了客户体验标题是文件名称
分析viewer.js 查找设置标题 document.title
还真有这个
分析
setTitleUsingUrl: function setTitleUsingUrl(url) {
this.url = url;
this.baseUrl = url.split('#')[0];
var title = (0, _ui_utils.getPDFFileNameFromURL)(url, '');
if (!title) {
try {
title = decodeURIComponent((0, _pdfjsLib.getFilenameFromUrl)(url)) || url;
} catch (ex) {
title = url;
}
}
this.setTitle(title);
},
setTitle: function setTitle(title) {
if (this.isViewerEmbedded) {
return;
}
document.title = title;
},
很明显是通过截图文件名称这时我们只要改
this.setTitle(title); 里面title就好了
如何是文件名称呢
对于viewr.html我们没法PHP带值,只能通过URL做文章了
?file='PDF地址'+'&title='+'文件名称'
这样我们可以通过截取文件名称
首先:
viewer.html写一个方法用于取文件名称
//获取地址栏参数值
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
var r = window.location.search.substr(1).match(reg);
if (r!=null) return (r[2]); return null;
}
然后
viewer.js
this.setTitle(decodeURIComponent(getQueryString('title')));
这时候标题会生成 <4D6963726F736F667420576F7264202D20BCAAC1D6B0E6C8CBCEC4D2BDD1A72E646F637> + 标题
分析 setTitle
if (pdfTitle) {
_this6.setTitle(pdfTitle + ' - ' + document.title);
}
去掉
pdfTitle + ' - ' +
即可
如上即可实现不同PDF显示不同名称