Просто, чтобы объяснить мое конкретное использование для него;Я сделал очень простой букмарклет, чтобы открыть эквивалентную страницу explainxkcd
из любого xkcd
комикса.Это выглядит так:
javascript:a=new URL(location);a.host==="xkcd.com"&&(a.host="explain"+a.host,open(a))
unminified:
let url = new URL(location);
if (url.host === "xkcd.com") {
url.host = "explain" + url.host;
open(url) # I want this to open "dynamically" like an <a> tag instead
}
Открывая как тег <a>
, я имею в виду заменить текущую вкладку (_self
), если клавиша Ctrl нене удерживаться, в противном случае откройте новую вкладку (_blank
), если удерживается Ctrl.Подходы, о которых я думал:
Проверьте event.ctrlKey
и используйте его для передачи в "_self" или "_blank", но, к сожалению, это не событие ...
Добавить ссылку на страницу программно и затем щелкнуть по ней.Это просто кажется хакерским.
Добавьте событие keydown
и keyup
и проследите, нажата ли клавиша Ctrl, но это не работает в букмарклете.
Есть ли какой-нибудь способ сделать это с помощью букмарклета или какой-то метод, который я пропустил?