From e0d893c0f587984487c4237562eebba34fdcbe0f Mon Sep 17 00:00:00 2001 From: thiemowmde Date: Tue, 12 Dec 2023 15:03:42 +0100 Subject: [PATCH] Fix broken reference popup when name contains # character The fragment in a URL like http://example.com/foo#bar#baz doesn't end when there is another # somewhere. That # is part of the fragment. I'm not sure since when this issue exists. It's already in the first version of this codebase from 2017, see Iff1f7e6. Bug: T332007 Change-Id: I3b0726380d2f385475f5ba53aeab16932d7ccaa7 --- resources/skins.minerva.scripts/references.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/resources/skins.minerva.scripts/references.js b/resources/skins.minerva.scripts/references.js index 40f46b3fc..e95e2fff2 100644 --- a/resources/skins.minerva.scripts/references.js +++ b/resources/skins.minerva.scripts/references.js @@ -16,17 +16,16 @@ module.exports = function () { * @param {jQuery.Event} ev Click event of the reference element */ function showReference( ev ) { - var urlComponents, - $dest = $( ev.currentTarget ), + var $dest = $( ev.currentTarget ), href = $dest.attr( 'href' ); ev.preventDefault(); // If necessary strip the URL portion of the href so we are left with the // fragment - urlComponents = href.split( '#' ); - if ( urlComponents.length > 1 ) { - href = '#' + urlComponents[ 1 ]; + var i = href.indexOf( '#' ); + if ( i > 0 ) { + href = href.slice( i ); } references.showReference( href, currentPage, $dest.text(),