diff --git a/packages/core/useElementByPoint/index.ts b/packages/core/useElementByPoint/index.ts index 8e29da2d15d..0e067223b62 100644 --- a/packages/core/useElementByPoint/index.ts +++ b/packages/core/useElementByPoint/index.ts @@ -2,8 +2,10 @@ import { ref } from 'vue-demi' import type { MaybeComputedRef } from '@vueuse/shared' import { resolveUnref } from '@vueuse/shared' import { useRafFn } from '../useRafFn' +import type { ConfigurableDocument } from '../_configurable' +import { defaultDocument } from '../_configurable' -export interface UseElementByPointOptions { +export interface UseElementByPointOptions extends ConfigurableDocument { x: MaybeComputedRef y: MaybeComputedRef } @@ -17,10 +19,10 @@ export interface UseElementByPointOptions { export function useElementByPoint(options: UseElementByPointOptions) { const element = ref(null) - const { x, y } = options + const { x, y, document = defaultDocument } = options const controls = useRafFn(() => { - element.value = document.elementFromPoint(resolveUnref(x), resolveUnref(y)) as HTMLElement | null + element.value = (document?.elementFromPoint(resolveUnref(x), resolveUnref(y)) || null) as HTMLElement | null }) return { diff --git a/packages/guide/config.md b/packages/guide/config.md index 35bba7da2b8..5793c469285 100644 --- a/packages/guide/config.md +++ b/packages/guide/config.md @@ -69,7 +69,7 @@ const parentMousePos = useMouse({ window: window.parent }) const iframe = document.querySelect('#my-iframe') // accessing child context -const childMousePos = useMouse({ window: iframe.contextWindow }) +const childMousePos = useMouse({ window: iframe.contentWindow }) ``` ```ts