diff --git a/src/observers/form_submit_observer.ts b/src/observers/form_submit_observer.ts index 1ef4ca33d..13c6a4450 100644 --- a/src/observers/form_submit_observer.ts +++ b/src/observers/form_submit_observer.ts @@ -60,6 +60,10 @@ function submissionDoesNotDismissDialog(form: HTMLFormElement, submitter?: HTMLE function submissionDoesNotTargetIFrame(form: HTMLFormElement, submitter?: HTMLElement): boolean { const target = submitter?.getAttribute("formtarget") || form.target + if (target === "") { + return true + } + for (const element of document.getElementsByName(target)) { if (element instanceof HTMLIFrameElement) return false } diff --git a/src/observers/link_click_observer.ts b/src/observers/link_click_observer.ts index 218eb2ba1..4d742e921 100644 --- a/src/observers/link_click_observer.ts +++ b/src/observers/link_click_observer.ts @@ -72,6 +72,10 @@ export class LinkClickObserver { } function doesNotTargetIFrame(anchor: HTMLAnchorElement): boolean { + if (anchor.target === "") { + return true + } + for (const element of document.getElementsByName(anchor.target)) { if (element instanceof HTMLIFrameElement) return false } diff --git a/src/tests/fixtures/form.html b/src/tests/fixtures/form.html index 5bae00bf7..3d834d284 100644 --- a/src/tests/fixtures/form.html +++ b/src/tests/fixtures/form.html @@ -330,5 +330,6 @@

Frame: Form

+ diff --git a/src/tests/fixtures/navigation.html b/src/tests/fixtures/navigation.html index 0f63df4de..d02f36a37 100644 --- a/src/tests/fixtures/navigation.html +++ b/src/tests/fixtures/navigation.html @@ -75,5 +75,6 @@

Navigation

+