-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmouse.user.js
36 lines (30 loc) · 1.02 KB
/
mouse.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// ==UserScript==
// ==/UserScript==
document.addEventListener('dblclick', CloseTheTab, true);
document.addEventListener('mousedown', mousedown, true);
document.addEventListener('contextmenu', contextmenu, true);
function CloseTheTab() {
window.close();
}
var shouldPrevent;
function mousedown (e) {
var target = e.target;
if (target.nodeName == 'A' && e.button == 2 && !e.ctrlKey) {
CreateMouseMiddleKeyClickEvent(e);
shouldPrevent = true;
}
}
function contextmenu (e) {
if (shouldPrevent) {
e.preventDefault();
shouldPrevent = false;
}
}
function CreateMouseMiddleKeyClickEvent(event) {
var clickEvent = document.createEvent ("MouseEvent");
clickEvent.initMouseEvent ("click", true, true, window, 0,
event.screenX, event.screenY, event.clientX, event.clientY,
event.ctrlKey, event.altKey, event.shiftKey, event.metaKey,
1, null);
event.target.dispatchEvent (clickEvent);
}