Javascript window.navigator.standalone出现问题

13

这真的让我很烦恼,

我已经将代码简化为以下内容:

$(function(){
  if ( ("standalone" in window.navigator) && !window.navigator.standalone ) {
    alert('full screen');
  }
});

但每次我从 Safari 在我的 iPad 上运行这个代码时,它都会弹出警告。

我不知道为什么,这正给我整个大学项目带来混乱,而且最后期限是星期一!任何帮助都将不胜感激。


1
我以前有不同的代码,没有 '!',看到有人说这段代码更可靠,于是我毫不留意地将其替换掉了。谢谢提醒。 - owenmelbz
2
你应该将其发布为答案并接受它,这样你的问题就不会出现在“未回答”选项卡中。 - Alexandre Khoury
1个回答

8

当/如果网页处于标准/常规Safari模式时,“window.navigator.standalone”值将为False。只有当网页处于“应用程序模式/即全屏模式”时,此值才为True。注意:此JavaScript值不存在于不支持“应用程序模式/即全屏模式”的浏览器中。因此,您应该同时测试属性window.navigator.standalone的存在性和真实性。


我不明白。为什么简单的if(navigator.standalone)不能起作用? 如果属性不存在,它仍然是false。如果它存在且为false,则为false。如果它存在且为true,则为true。这不是预期的结果吗? - Yaroslav Yakovlev
1
@YaroslavYakovlev 可能是因为您实际上正在应用程序中,但是此应用内浏览器可能不支持独立属性。 因此,您有三个可能的值:
  • false:您确定您在浏览器中,
  • true:您确定您在应用程序中,
  • undefined:您对任何事情都不确定;
- Justus Romijn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接