Browse Source

Set title using logic similar as download name

The download method (and the PDF document properties) detect the
file name using `getPDFFileNameFromURL`. The title ought to also
display the PDF filename if available.
Rob Wu 8 years ago
parent
commit
c67edabcb3
  1. 9
      web/app.js
  2. 8
      web/ui_utils.js

9
web/app.js

@ -569,14 +569,17 @@ var PDFViewerApplication = { @@ -569,14 +569,17 @@ var PDFViewerApplication = {
setTitleUsingUrl: function pdfViewSetTitleUsingUrl(url) {
this.url = url;
this.baseUrl = url.split('#')[0];
var title = getPDFFileNameFromURL(url, '');
if (!title) {
try {
this.setTitle(decodeURIComponent(
pdfjsLib.getFilenameFromUrl(url)) || url);
title = decodeURIComponent(pdfjsLib.getFilenameFromUrl(url)) || url;
} catch (e) {
// decodeURIComponent may throw URIError,
// fall back to using the unprocessed url in that case
this.setTitle(url);
title = url;
}
}
this.setTitle(title);
},
setTitle: function pdfViewSetTitle(title) {

8
web/ui_utils.js

@ -368,9 +368,13 @@ function noContextMenuHandler(e) { @@ -368,9 +368,13 @@ function noContextMenuHandler(e) {
/**
* Returns the filename or guessed filename from the url (see issue 3455).
* url {String} The original PDF location.
* defaultFilename {string} The value to return if the file name is unknown.
* @return {String} Guessed PDF file name.
*/
function getPDFFileNameFromURL(url) {
function getPDFFileNameFromURL(url, defaultFilename) {
if (typeof defaultFilename === 'undefined') {
defaultFilename = 'document.pdf';
}
var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/;
// SCHEME HOST 1.PATH 2.QUERY 3.REF
// Pattern to get last matching NAME.pdf
@ -392,7 +396,7 @@ function getPDFFileNameFromURL(url) { @@ -392,7 +396,7 @@ function getPDFFileNameFromURL(url) {
}
}
}
return suggestedFilename || 'document.pdf';
return suggestedFilename || defaultFilename;
}
function normalizeWheelEventDelta(evt) {

Loading…
Cancel
Save