mirror of
https://github.com/kiwix/libkiwix.git
synced 2025-12-24 06:57:59 -05:00
Compare commits
2 Commits
main
...
clickable_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d0ea2b074 | ||
|
|
f674336cc1 |
@@ -243,9 +243,10 @@ function matchingAncestorElement(el, context, selector) {
|
||||
|
||||
const block_path = `${root}/catch/external`;
|
||||
|
||||
function blockLink(target) {
|
||||
const encodedHref = encodeURIComponent(target.href);
|
||||
target.setAttribute("href", block_path + "?source=" + encodedHref);
|
||||
function blockLink(url) {
|
||||
return viewerSettings.linkBlockingEnabled
|
||||
? block_path + "?source=" + encodeURIComponent(url)
|
||||
: url;
|
||||
}
|
||||
|
||||
function isExternalUrl(url) {
|
||||
@@ -262,10 +263,8 @@ function onClickEvent(e) {
|
||||
const target = matchingAncestorElement(e.target, iframeDocument, "a");
|
||||
if (target !== null && "href" in target) {
|
||||
if ( isExternalUrl(target.href) ) {
|
||||
target.setAttribute("target", "_top");
|
||||
if ( viewerSettings.linkBlockingEnabled ) {
|
||||
return blockLink(target);
|
||||
}
|
||||
target.setAttribute("href", blockLink(target.href));
|
||||
contentIframe.contentWindow.parent.postMessage({ externalURL : target.href }, "*");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -313,8 +312,8 @@ let viewerSetupComplete = false;
|
||||
function on_content_load() {
|
||||
if ( viewerSetupComplete ) {
|
||||
handle_content_url_change();
|
||||
setup_external_link_blocker();
|
||||
}
|
||||
setup_external_link_blocker();
|
||||
}
|
||||
|
||||
function htmlDecode(input) {
|
||||
@@ -446,6 +445,13 @@ function changeUILanguage() {
|
||||
});
|
||||
}
|
||||
|
||||
function handleMessage(event) {
|
||||
console.log("handleMessage");
|
||||
if ( event.data.externalURL ) {
|
||||
window.location = event.data.externalURL;
|
||||
}
|
||||
}
|
||||
|
||||
function setupViewer() {
|
||||
// Defer the call of handle_visual_viewport_change() until after the
|
||||
// presence or absence of the taskbar as determined by this function
|
||||
@@ -453,6 +459,7 @@ function setupViewer() {
|
||||
setTimeout(handle_visual_viewport_change, 0);
|
||||
|
||||
window.onresize = handle_visual_viewport_change;
|
||||
window.addEventListener("message", handleMessage);
|
||||
|
||||
const kiwixToolBarWrapper = document.getElementById('kiwixtoolbarwrapper');
|
||||
if ( ! viewerSettings.toolbarEnabled ) {
|
||||
|
||||
@@ -73,7 +73,7 @@ const ResourceCollection resources200Compressible{
|
||||
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/taskbar.css" },
|
||||
{ STATIC_CONTENT, "/ROOT%23%3F/skin/taskbar.css?cacheid=bbdaf425" },
|
||||
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/viewer.js" },
|
||||
{ STATIC_CONTENT, "/ROOT%23%3F/skin/viewer.js?cacheid=b9a574d4" },
|
||||
{ STATIC_CONTENT, "/ROOT%23%3F/skin/viewer.js?cacheid=d407a38a" },
|
||||
{ DYNAMIC_CONTENT, "/ROOT%23%3F/skin/fonts/Poppins.ttf" },
|
||||
{ STATIC_CONTENT, "/ROOT%23%3F/skin/fonts/Poppins.ttf?cacheid=af705837" },
|
||||
{ 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" />
|
||||
<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/viewer.js?cacheid=b9a574d4" defer></script>
|
||||
<script type="text/javascript" src="./skin/viewer.js?cacheid=d407a38a" defer></script>
|
||||
<script type="text/javascript" src="./skin/autoComplete.min.js?cacheid=1191aaaf"></script>
|
||||
const blankPageUrl = root + "/skin/blank.html?cacheid=6b1fa032";
|
||||
<img src="./skin/langSelector.svg?cacheid=00b59961">
|
||||
|
||||
Reference in New Issue
Block a user