MediaWiki:Common.js: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Markierung: Manuelle Zurücksetzung
Keine Bearbeitungszusammenfassung
Zeile 998: Zeile 998:
   mw.loader.load('/index.php?title=MediaWiki:Gadget-LabelScan.css&action=raw&ctype=text/css', 'text/css');
   mw.loader.load('/index.php?title=MediaWiki:Gadget-LabelScan.css&action=raw&ctype=text/css', 'text/css');
});
});
// ==========================ScanApp==================================
/* ==== PWA: Manifest + Service Worker + Install-Button (ES5) ==== */
/* Manifest einbinden */
(function () {
  var link = document.createElement("link");
  link.rel = "manifest";
  link.href = "/app/labelscan/manifest.json";
  document.head.appendChild(link);
})();
/* Service Worker registrieren (nur wenn vorhanden) */
(function () {
  if ("serviceWorker" in navigator) {
    navigator.serviceWorker.register("/app/labelscan/sw.js")["catch"](function () {});
  }
})();
/* Install-Button steuern (Button-ID: ados-install) */
(function () {
  var installPrompt = null;
  // Wird von Chrome/Edge/Android gefeuert, wenn installierbar
  window.addEventListener("beforeinstallprompt", function (e) {
    try {
      e.preventDefault();
    } catch (ex) {}
    installPrompt = e;
    var btn = document.getElementById("ados-install");
    if (btn) {
      btn.style.display = "inline-block";
    }
  });
  // Sicherstellen, dass DOM existiert, bevor wir Handler setzen
  function onReady(fn) {
    if (document.readyState === "loading") {
      document.addEventListener("DOMContentLoaded", fn);
    } else {
      fn();
    }
  }
  onReady(function () {
    var btn = document.getElementById("ados-install");
    if (!btn) return;
    btn.addEventListener("click", function () {
      if (!installPrompt) return;
      try {
        installPrompt.prompt();
      } catch (ex) {}
      installPrompt = null;
      btn.style.display = "none";
    });
  });
})();