@@ -3,12 +3,17 @@ document.addEventListener('DOMContentLoaded', function () {
33 // If there is a query string, we need to fix up the page to make sure the query string is properly preserved
44 var desiredQueryString = new URLSearchParams ( window . location . search )
55 if ( desiredQueryString . toString ( ) ) {
6- preserveQueryString ( desiredQueryString )
6+
77 // If there are query parameters (searchparams) in the current window location
88 // then iterate over all them replacing text and link-hrefs that contain them
99 for ( var k of desiredQueryString . keys ( ) ) {
1010 replaceParamsInNodes ( document . body , k , desiredQueryString . get ( k ) )
1111 }
12+
13+ // NOTE: Once all links have been query string replaced, then attempt to preserve the query string
14+ // for all references
15+ preserveQueryString ( desiredQueryString )
16+
1217 }
1318
1419 function preserveQueryString ( desiredQueryString ) {
@@ -23,17 +28,27 @@ document.addEventListener('DOMContentLoaded', function () {
2328 if ( paramLinks ) {
2429 paramLinks . forEach ( appendQueryStringToHref )
2530 }
31+
32+ // Handle xrefs, which are anchor elements generated by antora with the page attribute
33+ var xrefLinks = document . querySelectorAll ( 'a.page' )
34+ if ( xrefLinks ) {
35+ xrefLinks . forEach ( appendQueryStringToHref )
36+ }
2637 }
2738
2839 function appendQueryStringToHref ( el ) {
2940 // NOTE: desiredQueryString captured from above
3041 if ( desiredQueryString . toString ( ) ) {
31- var hrefURL = new URL ( el . href )
32- for ( var k of desiredQueryString . keys ( ) ) {
33- hrefURL . searchParams . set ( k , desiredQueryString . get ( k ) )
34- }
42+ try {
43+ var hrefURL = new URL ( el . href )
44+ for ( var k of desiredQueryString . keys ( ) ) {
45+ hrefURL . searchParams . set ( k , desiredQueryString . get ( k ) )
46+ }
3547
36- el . href = hrefURL . toString ( )
48+ el . href = hrefURL . toString ( )
49+ } catch ( err ) {
50+ console . error ( 'Unable to append query string to element [' + el . innerHTML + ']: ' + err )
51+ }
3752 }
3853 }
3954
0 commit comments