mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-10 10:15:37 +02:00
Move the externalLinkTarget
and externalLinkRel
options to PDFLinkService
options
This removes the `PDFJS.externalLinkTarget`/`PDFJS.externalLinkRel` dependency from the viewer components, but please note that as a *temporary* solution the default viewer still uses it.
This commit is contained in:
parent
c45c394364
commit
3a6f6d23d6
8 changed files with 62 additions and 120 deletions
|
@ -274,7 +274,7 @@ var RenderingCancelledException = (function RenderingCancelledException() {
|
|||
return RenderingCancelledException;
|
||||
})();
|
||||
|
||||
var LinkTarget = {
|
||||
const LinkTarget = {
|
||||
NONE: 0, // Default value.
|
||||
SELF: 1,
|
||||
BLANK: 2,
|
||||
|
@ -282,7 +282,7 @@ var LinkTarget = {
|
|||
TOP: 4,
|
||||
};
|
||||
|
||||
var LinkTargetStringMap = [
|
||||
const LinkTargetStringMap = [
|
||||
'',
|
||||
'_self',
|
||||
'_blank',
|
||||
|
@ -294,8 +294,10 @@ var LinkTargetStringMap = [
|
|||
* @typedef ExternalLinkParameters
|
||||
* @typedef {Object} ExternalLinkParameters
|
||||
* @property {string} url - An absolute URL.
|
||||
* @property {LinkTarget} target - The link target.
|
||||
* @property {string} rel - The link relationship.
|
||||
* @property {LinkTarget} target - (optional) The link target.
|
||||
* The default value is `LinkTarget.NONE`.
|
||||
* @property {string} rel - (optional) The link relationship.
|
||||
* The default value is `DEFAULT_LINK_REL`.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -303,22 +305,16 @@ var LinkTargetStringMap = [
|
|||
* @param {HTMLLinkElement} link - The link element.
|
||||
* @param {ExternalLinkParameters} params
|
||||
*/
|
||||
function addLinkAttributes(link, params) {
|
||||
var url = params && params.url;
|
||||
function addLinkAttributes(link, { url, target, rel, } = {}) {
|
||||
link.href = link.title = (url ? removeNullCharacters(url) : '');
|
||||
|
||||
if (url) {
|
||||
var target = params.target;
|
||||
if (typeof target === 'undefined') {
|
||||
target = getDefaultSetting('externalLinkTarget');
|
||||
}
|
||||
link.target = LinkTargetStringMap[target];
|
||||
const LinkTargetValues = Object.values(LinkTarget);
|
||||
let targetIndex =
|
||||
LinkTargetValues.includes(target) ? target : LinkTarget.NONE;
|
||||
link.target = LinkTargetStringMap[targetIndex];
|
||||
|
||||
var rel = params.rel;
|
||||
if (typeof rel === 'undefined') {
|
||||
rel = getDefaultSetting('externalLinkRel');
|
||||
}
|
||||
link.rel = rel;
|
||||
link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -365,25 +361,6 @@ function getDefaultSetting(id) {
|
|||
return globalSettings ? globalSettings.maxImageSize : -1;
|
||||
case 'isEvalSupported':
|
||||
return globalSettings ? globalSettings.isEvalSupported : true;
|
||||
case 'externalLinkTarget':
|
||||
if (!globalSettings) {
|
||||
return LinkTarget.NONE;
|
||||
}
|
||||
switch (globalSettings.externalLinkTarget) {
|
||||
case LinkTarget.NONE:
|
||||
case LinkTarget.SELF:
|
||||
case LinkTarget.BLANK:
|
||||
case LinkTarget.PARENT:
|
||||
case LinkTarget.TOP:
|
||||
return globalSettings.externalLinkTarget;
|
||||
}
|
||||
warn('PDFJS.externalLinkTarget is invalid: ' +
|
||||
globalSettings.externalLinkTarget);
|
||||
// Reset the external link target, to suppress further warnings.
|
||||
globalSettings.externalLinkTarget = LinkTarget.NONE;
|
||||
return LinkTarget.NONE;
|
||||
case 'externalLinkRel':
|
||||
return globalSettings ? globalSettings.externalLinkRel : DEFAULT_LINK_REL;
|
||||
case 'enableStats':
|
||||
return !!(globalSettings && globalSettings.enableStats);
|
||||
default:
|
||||
|
@ -391,19 +368,6 @@ function getDefaultSetting(id) {
|
|||
}
|
||||
}
|
||||
|
||||
function isExternalLinkTargetSet() {
|
||||
var externalLinkTarget = getDefaultSetting('externalLinkTarget');
|
||||
switch (externalLinkTarget) {
|
||||
case LinkTarget.NONE:
|
||||
return false;
|
||||
case LinkTarget.SELF:
|
||||
case LinkTarget.BLANK:
|
||||
case LinkTarget.PARENT:
|
||||
case LinkTarget.TOP:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
class StatTimer {
|
||||
constructor(enable = true) {
|
||||
this.enabled = !!enable;
|
||||
|
@ -481,7 +445,6 @@ class DummyStatTimer {
|
|||
export {
|
||||
RenderingCancelledException,
|
||||
addLinkAttributes,
|
||||
isExternalLinkTargetSet,
|
||||
getFilenameFromUrl,
|
||||
LinkTarget,
|
||||
getDefaultSetting,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue