本地 javascript 网站 (file:///) 混淆了 Chrome、Edge 上的通知权限

JLo*_*her 5 javascript browser permissions notifications local

我正在为我工​​作的呼叫中心构建一个配套网站/应用程序,它可以做很多方便的事情,包括跟踪休息时间,这就是我遇到问题的地方。

这个“站点”将作为 html 文件存储在用户的计算机上(出于安全原因,我无法将它托管在其他地方),这似乎是问题的核心,因为我正在尝试启用桌面警报。

这是我用于请求通知权限的内容:

    document.addEventListener('DOMContentLoaded', function () {
  if (!Notification) {
    alert('Desktop notifications not available in this browser.');
    return;
  }
  if (Notification.permission !== "granted")
    Notification.requestPermission();
});

function notifyMe() {
  if (Notification.permission !== "granted")
    Notification.requestPermission();
 else {
    var notification = new Notification('Notification title', {
      body: "Notification",
    });
  }
}    
Run Code Online (Sandbox Code Playgroud)

...这是我在另一个线程中找到的。

问题是,作为本地文件,Chrome 永远不会承认它具有权限:我可以单击“批准”或“阻止”,但没有任何反应。如果我手动将“file:///*”添加到 Chrome 允许的站点,它将收到通知(但是,如果我手动添加整个本地地址,则不会)。Edge 会将“文件:”添加到其批准的列表中,但这不起作用且无法编辑。

我可能只是不走运,因为我想通过单击按钮在 Chrome 中获得批准来获得通知(并且它们在 Edge 中根本不起作用)。

有没有办法指定您希望浏览器添加到批准列表中的地址?我可以看到这样做会带来许多潜在的安全问题,但这可能是唯一可以解决此问题的方法。

提前致谢!