【问题标题】:My code works Firefox, Safari and MS Edge but doesn't work in Chrome我的代码适用于 Firefox、Safari 和 MS Edge,但不适用于 Chrome
【发布时间】:2017-11-30 02:38:40
【问题描述】:

我的代码适用于 Firefox、Safari 和 MS Edge,但不适用于 Chrome。 (我尝试在线我的网站。不起作用。我的网站可能吗?)

HTML

<button onclick = "bildirim()" >Bildirim yolla</button>

JS

   function bildirim () {

   if (!("Notification" in window)) {
   alert("Your browser does not support Web Notifications API");
   } 

  else if (Notification.permission === "granted") {

  var notification = new Notification('Bildirim', {
  body: '', 
  icon: '',

  });
  setTimeout(function(){
  notification.close();
  }, 3000); 
  }

  else if (Notification.permission !== 'denied') {

  Notification.requestPermission(function (permission) {

  if (permission === "granted") {
    var notification = new Notification('', {
      body: '', 
      icon: '',

    });
    setTimeout(function(){
notification.close();
}, 3000); 
   }
});
}
}

当我尝试离线时,按钮想要打开权限。当我打开它时,它不接受它并希望我重新打开它。它继续进行。不向我发送通知。

当我上传 html 网站时,按钮没有响应。该网站甚至不征求许可。所以我什至没有收到错误。

Chrome 是最新的。


已解决

Chrome 在没有 SSL 的情况下无法使用此代码。所以不工作 HTTP:// 工作 HTTPS://。

【问题讨论】:

  • 请包含任何错误消息,或至少详细说明“不起作用”。此外,正确格式化您的代码将有助于人们阅读它以找到您的问题。
  • 将您的日志设置为“详细”以查看 Chrome 抱怨的内容。
  • 我添加了错误和我的问题。

标签: html google-chrome push-notification permissions notifications


【解决方案1】:

以下是关于 Chrome 中通知的一些观察:

  1. 无法从本地文件 (file://) 发出通知。如果你有本地网络服务器,试着把它放在那里看看它是否有效。它对我有用。
  2. 当您将它上传到服务器时,如果它在 iframe 中加载并且 iframe 域与主 windows 域不同,那么如果 iframe 的域尚未允许显示通知,则它不起作用。例如:如果您首先检查https://developer.mozilla.org/en-US/docs/Web/API/notification 上的示例,它不起作用。但是,如果您访问 URL https://mdn.mozillademos.org/en-US/docs/Web/API/notification$samples/Example?revision=1326091,它会要求您获得许可,一旦您允许,它就可以在那里和之前的链接一样工作。另一个例子是https://davidwalsh.name/demo/notifications-api.php。在这里它可以工作,因为 iframe 域和顶部窗口域可能是相同的。
  3. 我只在 HTTPS 站点上看到过有效通知。我没有在任何 HTTP 站点上看到它(http://localhost 除外)。因此,(HTTPS)也可能是通知工作的要求之一。

很遗憾,我没有找到任何记录/确认这些观察结果的链接。

【讨论】:

  • 我在我的服务器上使用了相同的代码。 mdn.mozillademos.org/en-US/docs/Web/API/notification$samples/… ...我的网站再次无法使用。按钮没有反应。不要问我回应。我认为问题与Http有关。它是否在您的 file:// 或服务中使用此代码?
  • 如上所述,它不适用于 file://,但适用于 localhost。我还没有尝试将其上传到服务器。
猜你喜欢
  • 2021-06-05
  • 2021-05-07
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
相关资源
最近更新 更多