我的代码适用于 Firefox、Safari 和 MS Edge,但不适用于 Chrome

Posted

技术标签:

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

。 (我尝试在线我的网站。不起作用。我的网站可能吗?)

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 抱怨的内容。 我添加了错误和我的问题。 【参考方案1】:

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

    无法从本地文件 (file://) 发出通知。如果你有本地网络服务器,试着把它放在那里看看它是否有效。它对我有用。 当您将它上传到服务器时,如果它在 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 域和顶部窗口域可能是相同的。 我只在 HTTPS 站点上看到过有效通知。我没有在任何 HTTP 站点上看到它(http://localhost 除外)。因此,(HTTPS)也可能是通知工作的要求之一。

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

【讨论】:

我在我的服务器上使用了相同的代码。 mdn.mozillademos.org/en-US/docs/Web/API/notification$samples/… ...我的网站再次无法使用。按钮没有反应。不要问我回应。我认为问题与Http有关。它是否在您的 file:// 或服务中使用此代码? 如上所述,它不适用于 file://,但适用于 localhost。我还没有尝试将其上传到服务器。

以上是关于我的代码适用于 Firefox、Safari 和 MS Edge,但不适用于 Chrome的主要内容,如果未能解决你的问题,请参考以下文章

未在使用 Firefox 的选择列表中选择值(适用于 chrome、safari、opera)

CSS 关闭Box元素和定位大纲(适用于Firefox和Safari)

适用于 chrome、firefox 和 safari 浏览器的 Azure 浏览器推送通知

Firefox中忽略的最大高度适用于Chrome和Safari

CSS 过渡:不透明度和可见性过渡不适用于 Firefox(适用于 Chrome / Safari)

SimpleSAMLphp - SSO Azure 适用于 Firefox 和 Safari,但不适用于 Chrome 和 Edge