Submit to Tab on Ctrl + Click / Enter

Sets form's target to `_blank` when submitted via Ctrl + Left Mouse Button or Ctrl + Enter.

目前為 2024-03-01 提交的版本,檢視 最新版本

// ==UserScript==
// @name        Submit to Tab on Ctrl + Click / Enter
// @description Sets form's target to `_blank` when submitted via Ctrl + Left Mouse Button or Ctrl + Enter.
// @namespace   http://eldar.cz/myf/
// @license     CC0
// @version     2.0.0
// @grant       none
// @include     *
// ==/UserScript==
const doc = document.documentElement;
let isCtrlDown = false;
let therForm = null;
let origTarget = null;
let shouldCleanUp = false;
doc.addEventListener('keyup', keyup, true);
doc.addEventListener('keydown', keydown, true);
doc.addEventListener('submit', submit, true);
window.addEventListener('blur', blur, true);
function keyup(event){
 console.log(event);
 if ( event.key === "Control" ) {
  cleanup(); 
 }   
}   
function keydown(event){
 if ( event.key === "Control" && !isCtrlDown) {
  console.log(event);
  isCtrlDown = true;
 }
}
function submit(event){ 
 console.log(event);
 const tgt = event.target;
 if(isCtrlDown && !shouldCleanUp) {
  therForm = tgt;
  origTarget = therForm.target;
  therForm.target = '_blank';
  shouldCleanUp = true;
 }
}

function blur(event) {
 console.log(event);
 cleanup()
}

function cleanup(){
 if(shouldCleanUp) {
  console.log('cleanup');
  therForm.target = origTarget;
  isCtrlDown = false;
  therForm = null;
  origTarget = null;
  shouldCleanUp = false;
 }
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址