(' serviceWorker'在导航器中)没有返回' true'从文件中读取时,否则为true

时间:2016-04-16 20:59:46

标签: ruby-on-rails google-chrome coffeescript service-worker

我已经成功构建了一个Service Worker来控制我的Rails应用程序中的几个页面(不容易)。我已对其进行了测试,并且所有内容都在最新版本的Google Chrome中运行。但是,如果我尝试向Service Worker注册脚本添加条件,如下所示:

if ('serviceWorker' in navigator) #<-- this is what I'm talking about
  #registration stuff
else
  #Your browser does not support service workers

条件('serviceWorker' in navigator)始终返回false,并且服务工作者注册脚本不会运行。如果我删除条件,一切正常。如果我直接在Chrome控制台中输入条件,则会返回true

有谁知道我做错了什么?我的理解是if ('serviceWorker' in navigator)是测试浏览器与服务工作者兼容性的标准检查。注册脚本由我的Rails应用程序在开发模式下在其自己的文件中提供(再次,如果我删除条件一切正常)。

非常感谢任何探索的想法/途径!

1 个答案:

答案 0 :(得分:3)

我发现了问题:我使用的是coffeescript而不是javascript(这是Rails中的标准)。显然,coffeescript中的in与javascript中的in非常不同。在coffeescript中,正确的行是:

if 'serviceWorker' of navigator