Prevents websites from detecting tab switches by overriding visibility and focus events.
// ==UserScript==
// @name Bypass Tab Switch Detection
// @namespace http://tampermonkey.net/
// @version 1.1
// @description Prevents websites from detecting tab switches by overriding visibility and focus events.
// @author Devrill
// @match *://*/*
// @icon https://i.imgur.com/xePbmM7.png
// @license MIT
// @grant none
// ==/UserScript==
(function() {
'use strict';
window.addEventListener('blur', function(e) {
e.stopImmediatePropagation();
}, true);
window.addEventListener('focus', function(e) {
e.stopImmediatePropagation();
}, true);
document.addEventListener('visibilitychange', function(e) {
e.stopImmediatePropagation();
}, true);
try {
Object.defineProperty(document, 'hidden', {
get: function() {
return false;
}
});
} catch (e) {
console.log('Failed to override document.hidden:', e);
}
try {
Object.defineProperty(document, 'visibilityState', {
get: function() {
return 'visible';
}
});
} catch (e) {
console.log('Failed to override document.visibilityState:', e);
}
var originalAddEventListener = EventTarget.prototype.addEventListener;
EventTarget.prototype.addEventListener = function(type, listener, options) {
if (type === 'visibilitychange' || type === 'blur' || type === 'focus') {
console.log('Blocked event listener for:', type);
return;
}
originalAddEventListener.call(this, type, listener, options);
};
console.log('Tab switch detection bypassed!');
})();