first commit
This commit is contained in:
49
immersion.js
Normal file
49
immersion.js
Normal file
@@ -0,0 +1,49 @@
|
||||
// immersion.js
|
||||
(function () {
|
||||
// Preload audio
|
||||
const clickIn = new Audio('clickin.wav');
|
||||
const clickOut = new Audio('clickout.wav');
|
||||
|
||||
// Optional: make sure they can play multiple times quickly
|
||||
clickIn.preload = 'auto';
|
||||
clickOut.preload = 'auto';
|
||||
|
||||
document.addEventListener('mousedown', () => {
|
||||
// Reset currentTime so rapid clicks restart the sound
|
||||
clickIn.currentTime = 0;
|
||||
clickIn.play().catch(err => {
|
||||
// Ignore if browser blocks autoplay until user interaction
|
||||
console.warn('Click-in sound not played:', err);
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener('mouseup', () => {
|
||||
clickOut.currentTime = 0;
|
||||
clickOut.play().catch(err => {
|
||||
console.warn('Click-out sound not played:', err);
|
||||
});
|
||||
});
|
||||
windowHooks.push(function (e) {
|
||||
if (e.event === "windowCreate") {
|
||||
const iframe = e.window.iframe;
|
||||
iframe.onload = function () {
|
||||
try {
|
||||
// Access the iframe's global scope
|
||||
iframe.contentWindow.clickIn = clickIn;
|
||||
iframe.contentWindow.clickOut = clickOut;
|
||||
|
||||
// Also attach event listeners inside iframe
|
||||
const doc = iframe.contentDocument;
|
||||
doc.addEventListener('mousedown', () => {
|
||||
clickIn.currentTime = 0;
|
||||
clickIn.play().catch(() => { });
|
||||
});
|
||||
doc.addEventListener('mouseup', () => {
|
||||
clickOut.currentTime = 0;
|
||||
clickOut.play().catch(() => { });
|
||||
});
|
||||
} catch { };
|
||||
};
|
||||
}
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user