]> _ Git - fluidbook-html5.git/commitdiff
Only open links in a new window if they point to an external URL. WIP #1762 @0.5
authorStephen Cameron <stephen@cubedesigners.com>
Wed, 6 Dec 2017 12:48:56 +0000 (13:48 +0100)
committerStephen Cameron <stephen@cubedesigners.com>
Wed, 6 Dec 2017 12:48:56 +0000 (13:48 +0100)
js/libs/fluidbook/fluidbook.nav.js

index b6fcd14aba65508f4afe8afd37ffc3021e07a412..c342874fc4f224321bb96d30a36421bc8e2b1b7e 100644 (file)
@@ -436,7 +436,14 @@ FluidbookNav.prototype = {
                 var id = 'extra',
                     $nav = this.getNavFromType(navType),
                     elementID = navType + '_' + id,
-                    navExtraImage;
+                    navExtraImage,
+                    navLinkTarget = '';
+
+                // Check to see if navExtraLink is external or not and set target accordingly
+                if (typeof(this.fluidbook.datas.navExtraLink) == 'string' && this.fluidbook.datas.navExtraLink.lastIndexOf('http', 0) === 0) {
+                    navLinkTarget = ' target="_blank" rel="noopener noreferrer"';
+                }
+
 
                 if ($nav.find('#' + elementID).length > 0) {
                     continue;
@@ -446,7 +453,7 @@ FluidbookNav.prototype = {
 
                     if (this.fluidbook.datas.navExtraImage != '' && this.fluidbook.datas.navExtraLink != '') {
                         navExtraImage = this.fluidbook.datas.navExtraImage;
-                        link = '<a id="' + elementID + '" data-tooltip="' + this.fluidbook.datas.navExtraTooltip + '" href="' + this.fluidbook.datas.navExtraLink + '" target="_blank" rel="noopener noreferrer"><img class="nav-icon" src="data/images/' + navExtraImage + '"></a>';
+                        link = '<a id="' + elementID + '" data-tooltip="' + this.fluidbook.datas.navExtraTooltip + '" href="' + this.fluidbook.datas.navExtraLink + '"' + navLinkTarget + '><img class="nav-icon" src="data/images/' + navExtraImage + '"></a>';
 
                     } else if (this.fluidbook.datas.afterSearch != '' && this.fluidbook.datas.themeEnableAfterSearch && navType == 'horizontalNav') {
 
@@ -457,7 +464,7 @@ FluidbookNav.prototype = {
 
                 } else if (navType == 'menu' && (this.fluidbook.datas.navExtraImage != '' || this.fluidbook.datas.navExtraImageMobile != '') && this.fluidbook.datas.navExtraLink != '') {
                     navExtraImage = this.fluidbook.datas.navExtraImageMobile || this.fluidbook.datas.navExtraImage; // Fallback to desktop image
-                    link = '<a id="' + elementID + '" href="' + this.fluidbook.datas.navExtraLink + '" target="_blank" rel="noopener noreferrer"><img class="nav-icon" src="data/images/' + navExtraImage + '"> <span class="menu-item-title">' + this.fluidbook.datas.navExtraTooltip + '</span></a>';
+                    link = '<a id="' + elementID + '" href="' + this.fluidbook.datas.navExtraLink + '"' + navLinkTarget + '><img class="nav-icon" src="data/images/' + navExtraImage + '"> <span class="menu-item-title">' + this.fluidbook.datas.navExtraTooltip + '</span></a>';
                 }
 
                 if (link !== null) {