diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index efdfce5c9..02ec20050 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -135,6 +135,7 @@ const BrewRenderer = (props)=>{ const mainRef = useRef(null); const pagesRef = useRef(null); + const urlRef = useRef(''); if(props.renderer == 'legacy') { rawPages = props.text.split(PAGEBREAK_REGEX_LEGACY); @@ -272,12 +273,24 @@ const BrewRenderer = (props)=>{ const frameDidMount = ()=>{ //This triggers when iFrame finishes internal "componentDidMount" scrollToHash(window.location.hash); - navigation.addEventListener('navigate', (e)=>{ - if(e.hashChange && e.destination.sameDocument){ - const dest = e.destination.url.slice(e.destination.url.indexOf('#')); - scrollToHash(dest); - } - }); + if(navigation) { + navigation.addEventListener('navigate', (e)=>{ + if(e.hashChange && e.destination.sameDocument){ + const dest = e.destination.url.slice(e.destination.url.indexOf('#')); + scrollToHash(dest); + } + }); + } else { + urlRef.current = window.location.href; + setInterval(()=>{ + if(window.location.href != urlRef.current){ + urlRef.current = window.location.href; + const tmpURL = new URL(window.location.href); + const target = tmpURL.hash; + scrollToHash(target); + } + }, 1000); + }; setTimeout(()=>{ //We still see a flicker where the style isn't applied yet, so wait 100ms before showing iFrame renderPages(); //Make sure page is renderable before showing