Fix Non-English Anchor Popover Positioning Issue and Update Type Hint (#1252)
- [Major] Changed `hash` passed to `querySelector` to `decodeURIComponent(hash)` to fix the issue where non-English anchors were not correctly positioning the popover content to the corresponding title. - [Minor] Updated the type hint from `HTMLLinkElement` to `HTMLAnchorElement` as the passed element is an `<a>` element, not a `<link>` element (reference: https://developer.mozilla.org/en-US/docs/Web/API/HTMLLinkElement).
This commit is contained in:
		@@ -3,7 +3,7 @@ import { normalizeRelativeURLs } from "../../util/path"
 | 
			
		||||
 | 
			
		||||
const p = new DOMParser()
 | 
			
		||||
async function mouseEnterHandler(
 | 
			
		||||
  this: HTMLLinkElement,
 | 
			
		||||
  this: HTMLAnchorElement,
 | 
			
		||||
  { clientX, clientY }: { clientX: number; clientY: number },
 | 
			
		||||
) {
 | 
			
		||||
  const link = this
 | 
			
		||||
@@ -33,7 +33,7 @@ async function mouseEnterHandler(
 | 
			
		||||
  thisUrl.hash = ""
 | 
			
		||||
  thisUrl.search = ""
 | 
			
		||||
  const targetUrl = new URL(link.href)
 | 
			
		||||
  const hash = targetUrl.hash
 | 
			
		||||
  const hash = decodeURIComponent(targetUrl.hash)
 | 
			
		||||
  targetUrl.hash = ""
 | 
			
		||||
  targetUrl.search = ""
 | 
			
		||||
 | 
			
		||||
@@ -100,7 +100,7 @@ async function mouseEnterHandler(
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
document.addEventListener("nav", () => {
 | 
			
		||||
  const links = [...document.getElementsByClassName("internal")] as HTMLLinkElement[]
 | 
			
		||||
  const links = [...document.getElementsByClassName("internal")] as HTMLAnchorElement[]
 | 
			
		||||
  for (const link of links) {
 | 
			
		||||
    link.addEventListener("mouseenter", mouseEnterHandler)
 | 
			
		||||
    window.addCleanup(() => link.removeEventListener("mouseenter", mouseEnterHandler))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user