mirror of https://github.com/kiwix/libkiwix.git
Respecting --blockexternal option of kiwix-serve
This commit is contained in:
parent
9c4c37f183
commit
a05d3fa65a
|
@ -309,14 +309,22 @@ function setup_external_link_blocker() {
|
||||||
setupEventHandler(contentIframe.contentDocument, 'a', 'click', onClickEvent);
|
setupEventHandler(contentIframe.contentDocument, 'a', 'click', onClickEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getBlockedUrl(catchExternalUrl) {
|
||||||
|
const p = new URLSearchParams(catchExternalUrl.split('?')[1]);
|
||||||
|
return p.get('source');
|
||||||
|
}
|
||||||
|
|
||||||
function handleInterceptedExternalLink(catchExternalUrl) {
|
function handleInterceptedExternalLink(catchExternalUrl) {
|
||||||
// The external link blocking page was loaded in the viewer iframe.
|
// The external link blocking page was loaded in the viewer iframe.
|
||||||
// We need to get rid of the viewer taskbar and display the confirmation
|
// We need to get rid of the viewer taskbar and load in the top frame either
|
||||||
// page in the top frame.
|
// the external resource or, if running in --blockexternal mode, the
|
||||||
const urlpath = `${root}/` + catchExternalUrl;
|
// confirmation page
|
||||||
|
const url = viewerSettings.linkBlockingEnabled
|
||||||
|
? `${root}/` + catchExternalUrl
|
||||||
|
: getBlockedUrl(catchExternalUrl);
|
||||||
history.back(); // drop from the browsing history the state where the
|
history.back(); // drop from the browsing history the state where the
|
||||||
// external link catcher page is loaded in the iframe ...
|
// external link catcher page is loaded in the iframe ...
|
||||||
window.location = urlpath; // ... and load it in the top frame instead
|
window.location = url; // ... and load the target in the top frame instead
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -73,7 +73,7 @@ const ResourceCollection resources200Compressible{
|
||||||
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/taskbar.css" },
|
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/taskbar.css" },
|
||||||
{ STATIC_CONTENT, "/ROOT%23%3F/skin/taskbar.css?cacheid=bbdaf425" },
|
{ STATIC_CONTENT, "/ROOT%23%3F/skin/taskbar.css?cacheid=bbdaf425" },
|
||||||
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/viewer.js" },
|
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/viewer.js" },
|
||||||
{ STATIC_CONTENT, "/ROOT%23%3F/skin/viewer.js?cacheid=202f8641" },
|
{ STATIC_CONTENT, "/ROOT%23%3F/skin/viewer.js?cacheid=aa7200e4" },
|
||||||
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/fonts/Poppins.ttf" },
|
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/fonts/Poppins.ttf" },
|
||||||
{ STATIC_CONTENT, "/ROOT%23%3F/skin/fonts/Poppins.ttf?cacheid=af705837" },
|
{ STATIC_CONTENT, "/ROOT%23%3F/skin/fonts/Poppins.ttf?cacheid=af705837" },
|
||||||
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/fonts/Roboto.ttf" },
|
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/fonts/Roboto.ttf" },
|
||||||
|
@ -312,7 +312,7 @@ R"EXPECTEDRESULT( <link type="text/css" href="./skin/taskbar.css?cacheid=bbda
|
||||||
<link type="text/css" href="./skin/css/autoComplete.css?cacheid=08951e06" rel="Stylesheet" />
|
<link type="text/css" href="./skin/css/autoComplete.css?cacheid=08951e06" rel="Stylesheet" />
|
||||||
<script type="module" src="./skin/i18n.js?cacheid=2cf0f8c5" defer></script>
|
<script type="module" src="./skin/i18n.js?cacheid=2cf0f8c5" defer></script>
|
||||||
<script type="text/javascript" src="./skin/languages.js?cacheid=b00b12db" defer></script>
|
<script type="text/javascript" src="./skin/languages.js?cacheid=b00b12db" defer></script>
|
||||||
<script type="text/javascript" src="./skin/viewer.js?cacheid=202f8641" defer></script>
|
<script type="text/javascript" src="./skin/viewer.js?cacheid=aa7200e4" defer></script>
|
||||||
<script type="text/javascript" src="./skin/autoComplete.min.js?cacheid=1191aaaf"></script>
|
<script type="text/javascript" src="./skin/autoComplete.min.js?cacheid=1191aaaf"></script>
|
||||||
const blankPageUrl = root + "/skin/blank.html?cacheid=6b1fa032";
|
const blankPageUrl = root + "/skin/blank.html?cacheid=6b1fa032";
|
||||||
<img src="./skin/langSelector.svg?cacheid=00b59961">
|
<img src="./skin/langSelector.svg?cacheid=00b59961">
|
||||||
|
|
Loading…
Reference in New Issue