Skip to content

Commit 6b629c3

Browse files
authored
Allow to open link in a new tab when pressing the modifier key (ctrl or cmd) (#714)
1 parent 3514345 commit 6b629c3

File tree

3 files changed

+381
-7
lines changed

3 files changed

+381
-7
lines changed

src/Elastic.Markdown/Assets/main.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,20 @@ import {initTabs} from "./tabs";
77
import {initCopyButton} from "./copybutton";
88
import {initNav} from "./pages-nav";
99
import {$, $$} from "select-dom"
10+
import { UAParser } from 'ua-parser-js';
11+
const { getOS } = new UAParser();
12+
13+
document.addEventListener('htmx:beforeRequest', function(event) {
14+
if (event.detail.requestConfig.verb === 'get' && event.detail.requestConfig.triggeringEvent) {
15+
const { ctrlKey, metaKey, shiftKey }: PointerEvent = event.detail.requestConfig.triggeringEvent;
16+
const { name: os } = getOS();
17+
const modifierKey: boolean = os === 'macOS' ? metaKey : ctrlKey;
18+
if (shiftKey || modifierKey) {
19+
event.preventDefault();
20+
window.open(event.detail.requestConfig.path, '_blank', 'noopener,noreferrer');
21+
}
22+
}
23+
});
1024

1125
document.addEventListener('htmx:load', function() {
1226
initTocNav();

0 commit comments

Comments
 (0)