Parcourir la source

fix: don't call interceptWindowEvent in FireMonkey

Sv443 il y a 5 mois
Parent
commit
e5161394a1
1 fichiers modifiés avec 5 ajouts et 2 suppressions
  1. 5 2
      src/features/behavior.ts

+ 5 - 2
src/features/behavior.ts

@@ -1,5 +1,5 @@
 import { clamp, interceptWindowEvent, pauseFor } from "@sv443-network/userutils";
-import { domLoaded, error, getDomain, getVideoTime, getWatchId, info, log, waitVideoElementReady, clearNode, getCurrentMediaType, getVideoElement } from "../utils/index.js";
+import { domLoaded, error, getDomain, getVideoTime, getWatchId, info, log, waitVideoElementReady, clearNode, getCurrentMediaType, getVideoElement, warn } from "../utils/index.js";
 import { getFeature } from "../config.js";
 import { addSelectorListener } from "../observers.js";
 import { initialParams } from "../constants.js";
@@ -23,7 +23,10 @@ export function enableBeforeUnload() {
 
 /** Adds a spy function into `window.__proto__.addEventListener` to selectively discard `beforeunload` event listeners before they can be called by the site */
 export async function initBeforeUnloadHook() {
-  interceptWindowEvent("beforeunload", () => !beforeUnloadEnabled);
+  if(GM?.info?.scriptHandler && GM.info.scriptHandler !== "FireMonkey")
+    interceptWindowEvent("beforeunload", () => !beforeUnloadEnabled);
+  else
+    warn(`Event intercepting is not available in ${GM.info.scriptHandler}, please use a different userscript extension`);
 }
 
 //#region auto close toasts