您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
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;
- }
- }