Sets form's target to `_blank` when submitted via Ctrl + Left Mouse Button or Ctrl + Enter.
当前为
// ==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;
}
}