我已经成功构建了一个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应用程序在开发模式下在其自己的文件中提供(再次,如果我删除条件一切正常)。
非常感谢任何探索的想法/途径!
答案 0 :(得分:3)
我发现了问题:我使用的是coffeescript而不是javascript(这是Rails中的标准)。显然,coffeescript中的in
与javascript中的in
非常不同。在coffeescript中,正确的行是:
if 'serviceWorker' of navigator