-
Notifications
You must be signed in to change notification settings - Fork 3
/
hacks.js
48 lines (45 loc) · 1.57 KB
/
hacks.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
37
38
39
40
41
42
43
44
45
46
47
48
/**
* @copyright (C) 2017-2018 Tobia De Koninck
* @copyright (C) 2017-2018 Robin Jadoul
*
* This file is part of Keywi.
* Keywi is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Keywi is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Keywi. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* Dirty hacks for sites that won't cooperate
* Looking at you, microsoft
* see https://github.com/LEDfan/keywi/issues/80
* see https://github.com/LEDfan/keywi/issues/96
* see https://github.com/LEDfan/keywi/pull/81
* see https://github.com/LEDfan/keywi/pull/83
* see https://github.com/LEDfan/keywi/pull/84
*/
function applyHacks() {
fetch(browser.extension.getURL('/content_scripts/hacks.json')).
then(resp => resp.json()).
then(hacks => {
Object.keys(hacks).forEach(pat => {
if (window.location.href.search(new RegExp(pat)) !== -1) {
for (const el of document.querySelectorAll(hacks[pat])) {
el.style['pointer-events'] = 'none';
}
}
});
});
}
applyHacks();
/**
* For dynamically added elements
*/
document.addEventListener('contextmenu', applyHacks, true);