From 359bb979f8bebe5d48cb0d14b845d4d843263e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samy=20Pess=C3=A9?= Date: Tue, 18 Feb 2025 13:41:45 +0100 Subject: [PATCH] Open external link in a new tab when embedded in an iframe (#2846) --- .changeset/fluffy-beans-cry.md | 5 +++++ packages/gitbook/src/components/primitives/Link.tsx | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 .changeset/fluffy-beans-cry.md diff --git a/.changeset/fluffy-beans-cry.md b/.changeset/fluffy-beans-cry.md new file mode 100644 index 000000000..62be86146 --- /dev/null +++ b/.changeset/fluffy-beans-cry.md @@ -0,0 +1,5 @@ +--- +'gitbook': patch +--- + +Fix opening external links when the GitBook page is embedded in an iframe diff --git a/packages/gitbook/src/components/primitives/Link.tsx b/packages/gitbook/src/components/primitives/Link.tsx index 837894fcb..a65d7612d 100644 --- a/packages/gitbook/src/components/primitives/Link.tsx +++ b/packages/gitbook/src/components/primitives/Link.tsx @@ -47,6 +47,13 @@ export const Link = React.forwardRef(function Link( }); } + // When the page is embedded in an iframe, for security reasons other urls cannot be opened. + // In this case, we open the link in a new tab. + if (isExternal && window.self !== window.top) { + event.preventDefault(); + window.open(href, '_blank'); + } + domProps.onClick?.(event); };